Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.28;
Скачать: CL | DM;

Вниз

ADOQuery   Найти похожие ветки 

 
студент2002   (2002-10-06 11:10) [0]

Подскажите как работать с ADOQuery.
Есть ADOTable, ADOQuery и DBGrid. У всего одинаковое свойство DataSource. Запрос выглядит вроде этого: select * from users users where name="%blah-blah%". Делаяю ADOQuery1.ExecSQL. Результатов нет.
Подскажите что еще прописать, чтобы запрос выполнился. Порекомендуйте статье в инете, что-ли по ADO, SQL в Delphi.


 
Hooch ©   (2002-10-06 11:22) [1]

ADOQuery1.Open


 
студент2002   (2002-10-06 12:00) [2]

Что-то не работает? В чем может быть проблема? Мож там что-то отрешрешить надо?


 
Hooch ©   (2002-10-06 12:02) [3]

ну если запрос указан точно то один users убрать нужно :-)


 
BoxTer ©   (2002-10-06 12:16) [4]

а ты не пробовал вместо = в запросе нарисовать like ???


 
студент2002   (2002-10-06 14:13) [5]

2 Hooch:
Это, вроде, имя базы и такое же имя таблицы. Я в простом Query в SQLBuilder визуально сделал запрос - он таким образом выглядел. Тем не менее, если убрать один "users" ситуация у меня не меняется.

2 BoxTer:
Те же грабли.

Там вообще какой механизм работы? Оператор Select выбирает, что нужно и результат кидается в DataSource.DataSet и как следсвие в DBGrid?


 
BlackTiger   (2002-10-06 14:58) [6]

Хе-хе!
Ну, во-первых, если используешь маску, то нужно использовать оператор LIKE (учите SQL батенька, хорошая это весчь!). Т.е. запрос будет выглядеть так: SELECT * FROM users WHERE name LIKE "%blah-blah%".
Во-вторых, гораздо удобнее кроме TADOTable & TADOQuery использовать еще и TADOConnection, к которому таблица и запрос будут привязаны (свойство Connection!). Иначе таблица и запрос будут использовать КАЖДЫЙ СВОЮ СЕССИЮ, что не есть хорошо, например, если работаешь с базами, которые имеют ограничения на открытые сессии.


 
студент2002   (2002-10-06 15:14) [7]

2 BlackTiger:
Да я использую ADOConnection. Он прописан в свойствах таблиц и запроса. Текст запроса привел к виду как ты написал. По нажатию кнопки выполняю:
ADOQuery1.Active:=True;
ADOQuery1.ExecSQL;
ADOQuery1.Open;

И, похоже, что запрос выполняется. По крайней мере, кнопка залипает на некоторое время. Но в DBGrid, привязанный к DataSource, который, по идее, должен быть изменен запросом, изменения не поступают.


 
aus ©   (2002-10-06 16:15) [8]

>Есть ADOTable, ADOQuery и DBGrid. У всего одинаковое свойство DataSource

А это как это? Что-то ты напутал. У ADOQuery DataSource для одного, у DBGrid - для другого...


 
студент2002   (2002-10-06 16:40) [9]

Эээ.

Имеется:
DataSource_PreUsers: TDataSource;
ADOTable_PreUsers: TADOTable;
DBGrid_PreUsers: TDBGrid;
ADOQuery1: TADOQuery;
Дальше:
DataSource_PreUsers.DataSet=ADOTable_PreUsers
ADOQuery1.DataSource=DataSource_PreUsers
DBGrid_PreUsers.DataSource=DataSource_PreUsers

Что и где не так?



 
aus ©   (2002-10-06 16:52) [10]

Зачем ADOQuery1 нужен DataSourse?
Обычно для передачи параметров в подчиненный запрос присваивается значение, а у тебя запрос без параметров, зачем тогда?
DataSource_PreUsers.DataSet:=ADOTable_PreUsers;
ADOTable_PreUsers.SQL.Add("select * from users");
ADOTable_PreUsers.Open;
DBGrid_PreUsers.DataSource:=DataSource_PreUsers;
Так будет все работать, а ты что-то напутал.... или я чего не понял...


 
Mike_Goblin ©   (2002-10-06 18:23) [11]

Я не уверен, но вроде в Access вместо % в тексте запроса надо использовать *, попробуй, а вдруг :)))



Страницы: 1 вся ветка

Текущий архив: 2002.10.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.02 c
1-92534
zsv
2002-10-16 09:14
2002.10.28
Не могу изменить значение параметра в реестре!!!


6-92626
Руль
2002-08-26 02:14
2002.10.28
Помогите загрузить страничку и сохранить только текст!!!!!


1-92526
vitnt2000
2002-10-16 09:42
2002.10.28
Экспорт отчета


1-92576
Shadow
2002-10-14 21:23
2002.10.28
;) Как удалить опр. строку в текстовом файле?


14-92714
Smiths
2002-10-08 18:28
2002.10.28
Давно хотел спросить