• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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");
}
}
 
Мы в соцсетях:

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