Большой Воронежский Форум
» Программирование>Delphi БД, подскажите пожалуйста.
logkaa 10:46 22.10.2009
Подскажите пожалуйста как мне сделать так:
чтобы в списке отображались:

B62|Название книги|

и допутим некоторые еще поля которые я бы хотел добавить.
Одно поле я более менее понял, а второе не получаеться сделать, делал по аналогии первому не выходит((
Знающие люди подскажите пожалуйста!

Процедура для первого поля выглядит следующим образом

procedure TForm3.FormActivate(Sender: TObject);
begin
Table2.First;
while not Table2.Eof do
begin
DBGrid1.Columns.Items[2].PickList.add(Table2.fieldByName('Id_book').Value) ;
Table2.Next;
end;
end;

Заранее благадарен за любую помощь!!
Изображения
 
[Ответ]
Andrei_ra 11:51 22.10.2009
мда способ выше просто фантастический, используйте для объединения двух строк вычисляемое поле и затем на основе этого lookup поле. И никаких циклов не надо.
Если же вашим циклом делать то, что-то типа того:
DBGrid1.Columns.Items[2].PickList.add(Table2.fieldByName('Id_book').asStri ng+' - '+Table2.fieldByName('Name_book').asString) ;
Но в Вашем варианте не идет речи ни о какой нормализации БД, да и есть штатные средства для подобных решений и при этом квадратные колеса велосипеду лепить нет необходимости [Ответ]
Andrei_ra 11:59 22.10.2009
а еще лучше использовать query и в инструкции sql если без оптимизации написать что вроде этого:
SELECT Books.*,(Books.id_book+' - '+Books.name_book) AS IdName
FROM Books;
этот запрос источником для DbGrid, добавить lookup поле, и дальше по стандартной инструкции которых полно в сети [Ответ]
logkaa 12:44 22.10.2009
спасибо большое )) я просто только начал разбираться с БД в Delphi, в Access'e знал как все это сделать )) [Ответ]
Andrei_ra 13:03 22.10.2009
Если работаете с Access, то лучше используйте ADO компоненты: ADOConnection, ADOQuery,ADODataSet. [Ответ]
logkaa 13:26 22.10.2009
я с ним не работаю, просто раньше всегда делал БД в Access.
Да и если Вам не трудно подскажите еще одно :
Возможно ли как нибудь из Excel в Delphi импортировать данные? Или надо сначала в Access а потом в Delphi? Если можно, то как это сделать, я так понимаю через ADO придется делать. Может мануальчик есть какой нить, я вроде гуглил, но что то не нашел нормального. [Ответ]
Andrei_ra 15:05 22.10.2009
в Delphi во что-то должны импортировать, т.е. или в переменную если одно значение, или в массив если список значений, так же список можно загрузить в ListView к примеру, или в БД которая подключена к Вашей программе, все зависит от конкретного случая. У меня опыт работы с Excel только через OLE, в случае большого обмена данными между Excel и приложением отличается медлительностью, и в случае каких-то операций с данными необходимо делать дополнительные проверки на их тип, т.к. все значения передаются в виде Variant. [Ответ]
logkaa 21:37 22.10.2009
Andrei_ra, спасибо большое. [Ответ]
Вверх