|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
27.10.2008, 10:09 | #1 |
Регистрация: 22.10.2008
Сообщений: 3
|
Выборка строк из таблицы по значению TDBLookupComboBox
Здравствуйте уважаемые программисты. Я ещё совсем новичок в работе с БД на дельфи, и столкнулся с такой проблемой:
задействованные лица: т1 КодЗаказчика (ключ) Заказчик т2 КодДетали (ключ) КодЗаказчика Наименование ... на form1 имеется TDBLookupComboBox, который берет данные из таблицы [т1.Заказчик] на form2 имеется TDBGrid в котором посредством запроса нужно отобразить только те записи, у которых значение поля [т2.КодЗаказчика] соответствовало бы выбранному в комбобоксе. ----- Запрос: SELECT т2.КодЗаказчика, т2.Наименование FROM тДетали WHERE (тДетали.КодЗаказчика=???); попробовал подставить строку: тДетали.КодЗаказчика=form1.DBLookup ComboBox1.KeyValue пишет, что данный параметр не имеет значения по умолчанию... Подскажите пожалуйста, как правильно построить строку "WHERE". Очень прошу! |
27.10.2008, 10:15 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
???:=(select КодЗаказчика from t1 where Заказчик='+QuotedStr(DBLookupComboB ox1.Text));
Коли занялись SQL запросами, нужно иметь под рукой хоть какое руководство по SQL. Последний раз редактировалось mihali4; 27.10.2008 в 10:22. |
27.10.2008, 11:43 | #3 |
Регистрация: 22.10.2008
Сообщений: 3
|
Спасибо огромное за внимание
мм.. мне ужасно стыдно за следующий вопрос, но надеюсь Вы мне поясните: эту конструкцию я вношу в "WHERE"? ... WHERE (select КодЗаказчика from t1 where Заказчик='+QuotedStr(DBLookupComboB ox1.Text)); а вот это место: ='+QuotedStr... я не знаком с этой функцией если я оставляю её без апострофа, пишет "Неопределенная функция в выражении", если добавляю ' ' тоже самое. Я так понимаю посредством этого подзапроса мы извлекаем из первой таблицы значение поля "КодЗаказчика" по отображенному значению комбобокса? |
27.10.2008, 12:16 | #4 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
1. Да. Это называется "вложенный запрос". Только я же вам обозначил, что эта строка - вместо ваших "???". А вы что написали?
2. Странно... Функция из SysUtils... У вас что, SysUtils не подключен? Она делает очень простую, но иногда полезную вещь - заключает в апострофы строку-аргумент. 3. Верно понимаете. Последний раз редактировалось mihali4; 27.10.2008 в 18:55. |
28.10.2008, 05:45 | #5 |
Регистрация: 22.10.2008
Сообщений: 3
|
Спасибо за ответ
SysUtils подключен, и сама функция работает, если допустим просто присвоить метке значение: label.Caption:=QuotedStr(DBLookupCo mboBox1.Text) -> выводит заключенное в апострофы значение. Запрос работает (спасибо ), если вместо QuotedStr() поставить просто значение 'Нужная строка'. Но когда я подставляю QuotedStr() выдается ошибка: Неопределенная функция 'QuotedStr' в выражении. Может я делаю ошибку в синтаксисе? Вот полный текст запроса: Код:
p.s. а как на форуме в форму быстрого ответа ввести имя, к кому обращаешься? (куда кликнуть надо?) Спасибо. Последний раз редактировалось Gringo; 28.10.2008 в 09:04. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ADO, выборка из таблицы. | Roof | БД в Delphi | 2 | 09.07.2008 18:51 |
Установка указателя в одной таблице по значению из другой | Avalonix | БД в Delphi | 1 | 31.05.2008 17:20 |
Выборка из таблицы | ivp88 | БД в Delphi | 5 | 12.01.2008 14:36 |
Поиск в базе по значению в Edit | Arteom | БД в Delphi | 2 | 19.10.2007 22:23 |