• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Dblookuplistbox

  • Автор темы derbote
  • Дата начала
D

derbote

Пишу свою первую БД, поэтому вопрос задаю в разделе для начинающих.

Есть база данных.
Одна таблица в формате парадокс7 (созданная с помощью Database Desktop).
Псевдоним magica_alias
Имя файла magica_file.db
На форме компонент DBGrid1 связан с Table1 через DataSource1 стандартным способом.
Надо содержимое одного из полей DBGrid1 c названием Adress_F вывести в DBLookupListBox1.
Вроде бы надо что то прописать в ListField или ListSource , но что не знаю.
Хотелось бы увидеть пример, как это делается.

Заранее благодарен.
 
E

etc

см. в $(DELPHI)\Demos\Db\ там примеров куча.
 
D

derbote

Предыдущую проблему решил.
Появился еще вопросик.
В ЛистБоксе перечислены поля из ДБгрида.
После выбора поля (щелчком мыши) в ДБЛукапЛистБоксе появляются надписи (поля выбранного в ЛистБоксе) из ДБГрида.
Это все работает нормально.
При щелчке в ДБЛукапЛистБоксе должен выводиться запрос в ДБГрид.
Критерий запроса:
Все поля.
Строки в которых имя поля выбрано в ЛистБоксе, а значение вабрано в ДБЛукапЛистБоксе.
Некомпилится следующая процедура (в составе проги).
Что неправильно?

void __fastcall TForm1::DBLookupListBox1Click(TObject *Sender)
{
int nomer_stroki_ListBox1;
AnsiString imia_zapisi,
imia_polia;

imia_zapisi = DBLookupListBox1->SelectedItem;

nomer_stroki_ListBox1 = ListBox1->ItemIndex;
imia_polia = DBGrid1->Columns->Items[nomer_stroki_ListBox1]->FieldName;

Query1->SQL->Add("SELECT *");
Query1->SQL->Add("FROM ':magica_alias:magica_file.db'");
Query1->SQL->Add("WHERE (imia_polia =
'" + imia_zapisi + "')");

Form1->Query1->Open();
Form1->DataSource1->DataSet = Form1->Query1;

if ( ! Form1->Query1->RecordCount)
{
ShowMessage("nichego netu");
}
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!