Форум: "Базы";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c