Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.58 MB
Время: 0.036 c
4-92777
Fargus
2002-09-14 03:25
2002.10.28
Как можно закрить активное окно


1-92571
Fog
2002-10-16 20:34
2002.10.28
Сканирование каталога...


3-92400
race1
2002-10-08 16:59
2002.10.28
ib


3-92390
Sectey
2002-10-04 08:24
2002.10.28
Стабильный SQL сервер.


1-92491
Родионов Юрий
2002-10-16 04:40
2002.10.28
Интерполирование функции кубическим сплайном





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский