Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2014, 09:58   #31
Максим1818
Пользователь
 
Регистрация: 06.02.2014
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Vanta11a Посмотреть сообщение
Подсказываю:


Выделенное курсивом - запрос

Выделенное жирным - наименование параметра

Вы видите в запросе наименование параметра? Я тоже не вижу.
Запрос должен иметь вид типа
и вот так ничего (((

я не хочу использовать параметр WHERE

if ADOQuery4.Active then ADOQuery4.Close;
ADOQuery4.Parameters.Clear;
ADOQuery4.SQL.Text:='SELECT * FROM ClassDesc Where ClassDesc = 2';
ADOQuery4.Parameters.ParamValues['2'] := Combobox1.Text;
ADOQuery4.ExecSQL;
ADOQuery4.Close;


я тут это все реализовал при помощи DBLookupComboBox
скажите пожалуйста а как можно реализовать ниже указанное

Т.е., допустим, есть у вас таблица "продукт" и таблица "марки продуктов". В "продуктах" - только наименования, например "рис", "макароны" и т.д. В "марках продуктов" - соответствия вида "Макфа|макароны", "Вау|рис", "Мискузи|рис" и т.д.
Соответственно, если выбранный продукт - "макароны", то нужно вывести только те марки продуктов, которые соответствуют макаронам?

Последний раз редактировалось Максим1818; 11.02.2014 в 10:25.
Максим1818 вне форума Ответить с цитированием
Старый 11.02.2014, 10:04   #32
Максим1818
Пользователь
 
Регистрация: 06.02.2014
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Vanta11a Посмотреть сообщение
Подсказываю:


Выделенное курсивом - запрос

Выделенное жирным - наименование параметра

Вы видите в запросе наименование параметра? Я тоже не вижу.
Запрос должен иметь вид типа
я Вам конечно очень благодарен, что Вы желаете меня научить языку программирование )))
Максим1818 вне форума Ответить с цитированием
Старый 11.02.2014, 10:26   #33
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, запомните, если Вы хотите получить набор данных (запрос данных == SELECT), то Query нужно открывать через метод .Open (или Active := true, что одно и то же).
Метод ExecSQL используется для внесения изменений в данные (команды SQL UPDATE/ INSERT/ DELETE и т.д.)

во-вторых, параметер Вы прописали, но ЧЕМУ он должен быть равен?!!!
Код:
ADOQuery4.SQL.Text:='SELECT * FROM Class Where ??? = :xyz';
ADOQuery4.Parameters.ParamByName('xyz').Value := Combobox1.Text;
ADOQuery4.Open;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.02.2014, 12:16   #34
Максим1818
Пользователь
 
Регистрация: 06.02.2014
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
во-первых, запомните, если Вы хотите получить набор данных (запрос данных == SELECT), то Query нужно открывать через метод .Open (или Active := true, что одно и то же).
Метод ExecSQL используется для внесения изменений в данные (команды SQL UPDATE/ INSERT/ DELETE и т.д.)

во-вторых, параметер Вы прописали, но ЧЕМУ он должен быть равен?!!!
Код:
ADOQuery4.SQL.Text:='SELECT * FROM Class Where ??? = :xyz';
ADOQuery4.Parameters.ParamByName('xyz').Value := Combobox1.Text;
ADOQuery4.Open;
я вообще уже запутался

есть MS SQL в ней БД в базе данных таблица Class в таблице Class 2 колонки ClassDesc и ClassID

Хочу в Combobox вывести значение из ClassDesc
Максим1818 вне форума Ответить с цитированием
Старый 11.02.2014, 12:45   #35
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Код:
'SELECT ClassDesc FROM Class'
- это выбор всех полей в столбце ClassDesc таблицы Class
Код:
'SELECT ClassDesc FROM Class WHERE ClassID = 1'
- это выбор всех полей в столбце ClassDesc таблицы Class, для которых ClassIP = 1

Ну и так далее.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 11.02.2014, 15:12   #36
Максим1818
Пользователь
 
Регистрация: 06.02.2014
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Vanta11a Посмотреть сообщение
Код:
'SELECT ClassDesc FROM Class'
- это выбор всех полей в столбце ClassDesc таблицы Class
Код:
'SELECT ClassDesc FROM Class WHERE ClassID = 1'
- это выбор всех полей в столбце ClassDesc таблицы Class, для которых ClassIP = 1

Ну и так далее.
Указал, но все равно не удача ((

if ADOQuery4.Active then ADOQuery4.Close;
ADOQuery4.Parameters.Clear;
ADOQuery4.SQL.Text:='SELECT ClassDesc FROM Class Where ClassID = 1';
ADOQuery4.Parameters.ParamByName('1 ').Value := Combobox1.Text;
ADOQuery4.Open;
Максим1818 вне форума Ответить с цитированием
Старый 11.02.2014, 15:21   #37
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

для начала, давайте забудет про параметры и отработаем запрос.
Перейдите в Среда SQL Server Management Studio,
подключитесь к вашей БД, откройте новое SQL окно и напишите там текст:
Код:
SELECT ClassDesc FROM Class Where ClassID = 1
нажмите F5 (или Query - Execute)

убедитесь, что запрос отработал и ВЕРНУЛ запись (одну или несколько)..

дальше, переходите в Delphi
и пробуйте такой код:
Код:
ADOQuery4.Close;
ADOQuery4.SQL.Text:='SELECT ClassDesc FROM Class Where ClassID = 1';
ADOQuery4.Open;
Если Вы всё сделали верно, то у Вас в тот контрол, который связан с ADOQuery4 выберутся те же записи, что Вы видели в окне выборки SQL Server Management Studio.

Если всё сделаете, то после этого перейдём к параметрам!

Последний раз редактировалось Serge_Bliznykov; 11.02.2014 в 15:25.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.02.2014, 15:44   #38
Максим1818
Пользователь
 
Регистрация: 06.02.2014
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
для начала, давайте забудет про параметры и отработаем запрос.
Перейдите в Среда SQL Server Management Studio,
подключитесь к вашей БД, откройте новое SQL окно и напишите там текст:
Код:
SELECT ClassDesc FROM Class Where ClassID = 1
нажмите F5 (или Query - Execute)

убедитесь, что запрос отработал и ВЕРНУЛ запись (одну или несколько)..

дальше, переходите в Delphi
и пробуйте такой код:
Код:
ADOQuery4.Close;
ADOQuery4.SQL.Text:='SELECT ClassDesc FROM Class Where ClassID = 1';
ADOQuery4.Open;
Если Вы всё сделали верно, то у Вас в тот контрол, который связан с ADOQuery4 выберутся те же записи, что Вы видели в окне выборки SQL Server Management Studio.

Если всё сделаете, то после этого перейдём к параметрам!
В SQL все получилось и показал нужное поле
в Delphi вписал на Combobox1 Events OnChange
ADOQuery4.Close;
ADOQuery4.SQL.Text:='SELECT ClassDesc FROM Class Where ClassID = 1';
ADOQuery4.Open;

Ничего не показало
Максим1818 вне форума Ответить с цитированием
Старый 11.02.2014, 16:06   #39
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Максим1818 Посмотреть сообщение
В SQL все получилось и показал нужное поле
отлично!

Цитата:
Сообщение от Максим1818 Посмотреть сообщение
в Delphi вписал на Combobox1 Events OnChange

Ничего не показало
а Вы в Combobox1 что-то меняли?!

Если да, то вот. это проблема.
значит,
1) убедитесь, что событие срабатывает в нужный код Вы попадаете.
(поставьте точку останова на строчке ADOQuery4.Close; )

2) проверьте, с чём у Вас связано ТО, что ничего не показало!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.02.2014, 16:20   #40
Максим1818
Пользователь
 
Регистрация: 06.02.2014
Сообщений: 29
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
отлично!


а Вы в Combobox1 что-то меняли?!

Если да, то вот. это проблема.
значит,
1) убедитесь, что событие срабатывает в нужный код Вы попадаете.
(поставьте точку останова на строчке ADOQuery4.Close; )

2) проверьте, с чём у Вас связано ТО, что ничего не показало!
удалил и создал новый combobox, все равно та же проблема

я сейчас видео с экрана сниму всего процесса и выложу, может я где то не туда нажимаю и
Максим1818 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование символа '(' в имени создаваемой таблицы в SQL cdman C# (си шарп) 0 04.09.2013 15:30
Использование указателей для организации связанных списков Jalgas-xan Паскаль, Turbo Pascal, PascalABC.NET 2 21.02.2013 22:41
Два не связанных combobox в одной таблице liienna Microsoft Office Excel 2 12.02.2011 17:34
Использование DBLookupComboBox Irina_87 Помощь студентам 45 10.12.2009 08:25
Организация корректного поиска в связанных таблицах посредством SQL в Delphi Krechet БД в Delphi 9 10.04.2009 16:40