Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.07.2008, 15:49
derbote derbote вне форума
Прохожий
 
Регистрация: 07.07.2008
Сообщения: 8
Репутация: 5
По умолчанию Связь DBLookupListBox и DBGrid

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

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

Заранее благодарен.
Ответить с цитированием
  #2  
Старый 08.07.2008, 09:32
YERokez YERokez вне форума
Прохожий
 
Регистрация: 27.10.2007
Сообщения: 22
Репутация: 10
По умолчанию

Код:
DBLookupListBox1.ListSource:=DataSource1;
DBLookupListBox1.ListField:='Adress_F';

Попробуй так.
И еще ListSource и ListField можешь указать у DBLookupListBox1 прямо в Object Inspector.
Ответить с цитированием
  #3  
Старый 08.07.2008, 13:20
derbote derbote вне форума
Прохожий
 
Регистрация: 07.07.2008
Сообщения: 8
Репутация: 5
По умолчанию

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

void __fastcall TForm1:BLookupListBox1Click(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");
}
}
Ответить с цитированием
  #4  
Старый 08.07.2008, 13:59
YERokez YERokez вне форума
Прохожий
 
Регистрация: 27.10.2007
Сообщения: 22
Репутация: 10
По умолчанию

А-а-а.... Это же Си, а я на Дельфи.
Но при этом у меня вызывает сомнение последний if.
В Дельфи я бы сравнил RecordCount c 0.
А то выглядит как логическая величина.
Ответить с цитированием
  #5  
Старый 08.07.2008, 14:10
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,087
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

С ифом все нормально. Дело в том, что в С False = 0, так что условие выглядит как "записей не равно 0".
На какой строке компилятор ругается?
Ответить с цитированием
  #6  
Старый 08.07.2008, 14:45
derbote derbote вне форума
Прохожий
 
Регистрация: 07.07.2008
Сообщения: 8
Репутация: 5
По умолчанию

Я сейчас на другом компе (на моем нету ИНЕТА).
Помоему компилятору не нравится что imia_polia взято из Грида.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:54.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025