![]() |
|
#1
|
|||
|
|||
![]() Всем привет. Я новичок в делфи. У меня установлена делфи7. Есть база данных SQLite. Как мне подключить его к гриду в делфи7?
|
#3
|
|||
|
|||
![]() Цитата:
1. DISQLite3Database1 2. DISQLite3UniDirQuery1 3. DISQLite3DataSetImporter1 В опциях DISQLite3Database1 выбрал базу данных и конектился, все ок. В опциях DISQLite3UniDirQuery1 выбрал DISQLite3Database1 и где написано SelectSQL написал Select * from hamagi - все ок. В опциях DISQLite3DataSetImporter1 выбрал DISQLite3Database1 и DISQLite3UniDirQuery1 и там где написано Table name написал hamagi - все ок. На форме вставил DBGrid но как его подключить к базе данных? В опциях DBGrid есть DataSource но при клике она пустая, что делать дальше? |
#4
|
||||
|
||||
![]() Со вкладки Data Access палитры компонентов осталось добавить невизуальный компонент DataSource и ему задать из списка в Data Set вашу базу и прицепить его к DBGrid
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
![]() Цитата:
1. DataSource (DB) 2. ClientDataSet (DBClient) 3. DataSetProvider (Provider) 4. XMLTransform (Xmlxform) 5. XMLTransformProvider (Xmlxform) 6. XMLTransformClient (Xmlxform) 7. VirtualTable (VirtualTable) 8. CRBatchMove (CRBatchMove) Какой из них выбрать? |
#6
|
|||
|
|||
![]() Ах да я понял, я сделал как вы сказали но выдает ошибку Operation not allowed on a unidirectional dataset
|
#7
|
||||
|
||||
![]() Возможно ещё нужны DataSetProvider и ClientDataSet оттуда же т.к.
вероятно ваша DISQLite3Database имеет однонаправленный набор данных, а гриду надо с произвольным доступом Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#8
|
|||
|
|||
![]() Цитата:
|
#9
|
|||
|
|||
![]() Цитата:
|
#10
|
||||
|
||||
![]() На сайте где вы скачивали библиотеку DISQLite есть делфийские примеры, можно их и глянуть, хуже не будет :-)
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#11
|
|||
|
|||
![]() Цитата:
procedure TForm1.Button1Click(Sender: TObject); begin Query1.Close; if not Query1.Prepared then Query1.Prepare; Query1.ParamByName('lastname').Value := Edit1.Text; Query1.Open; end; |
#12
|
||||
|
||||
![]() А не проще готовыми методами самого компонента?
Код:
procedure TForm1.Button1Click(Sender: TObject); begin Query1.Locate('lastname', Edit1.Text, [loPartialKey]); end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#13
|
|||
|
|||
![]() Цитата:
Кстати на форме имеется DBGrid1, Edit1, Button1, DataSource, Clientdataset1, Datasetprovider, DISqliteDatabase и DISqliteUniDirQuery. На гриде показывается все данные из базы данных sqlite.db. Надо в поле edit1 написать например фамилию Пиров и при нажатии на кнопку в гриде была только фамилия Пиров если она есть, в противном случае выскочило сообшение Нет такого сотрудника. |
#14
|
||||
|
||||
![]() Цитата:
А про фамилию, можно похоже вот так сделать Код:
... with Query1 do begin Close; SQL.Text:= 'SELECT * FROM Table_Name WHERE lastname=' + Edit1.Text; Open; if FieldValues['lastname'] <> Edit1.Text then ShowMessage('Нет такого сотрудника') ; end; ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#15
|
|||
|
|||
![]() Цитата:
|