Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Купить рекламу на форуме 15-35 тыс рублей в месяц

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

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2010, 12:23   #1
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
Печаль ADO-MS SQL Не выполняется запрос SELECT

Делаю простую выборку с помощью запроса SELECT
Код:
procedure TForm2.sButton8Click(Sender: TObject);
var
str:string;
begin
Form1.ADOQuery1.SQL.Clear;
str:='SELECT * FROM [BTI].[dbo].[House] WHERE [Block]=13';
Form1.ADOQuery1.SQL.Add(str);
Form1.ADOQuery1.ExecSQL;
end;
Результат не выводится в DBGrid.DBGrid связан с DataSource.
Сам ADOQuery связан с DataSource,а DataSource связан с ADOTable,где в свою очередь указанна таблица,с которой идёт работа.
Все другие запросы типа INSERT,DELETE,UPDATE работают отлично.
Сам запрос корректен,в самом MS SQL проверен.

В чём может быть проблема,подскажите пожалуйста?
Dj_SheLL вне форума Ответить с цитированием
Старый 23.11.2010, 12:41   #2
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Form1.ADOQuery1.Open;
_SERGEYX_ вне форума Ответить с цитированием
Старый 23.11.2010, 12:49   #3
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Form1.ADOQuery1.Open;
Вместо
Код:
Form1.ADOQuery1.ExecSQL
Эффект тоже.

Код:
Form1.ADOQuery1.Active:=false;
...
Form1.ADOQuery1.Active:=true;
Тоже ноль эффекта.

Последний раз редактировалось Stilet; 23.11.2010 в 13:16.
Dj_SheLL вне форума Ответить с цитированием
Старый 23.11.2010, 13:11   #4
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Проверь выполняется ли запрос вообще (без Where). Кстати, старый зпрос закрывать нужно..
Например, так
Код:
Form1.ADOQuery1.Close;
Form1.ADOQuery1.SQL.Clear;
Form1.ADOQuery1.SQL.Add('SELECT * FROM [BTI].[dbo].[House]');
Form1.ADOQuery1.Open;
Showmessage('Всего строк: '+inttostr(Form1.ADOQuery1.RecordCount));
Если выполнится - ищи косяк в другом...
_SERGEYX_ вне форума Ответить с цитированием
Старый 23.11.2010, 13:16   #5
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Кстати, старый зпрос закрывать нужно..
Закрывал.
Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
Если выполнится - ищи косяк в другом...
Выполнился
Я просто даже не могу предположить в чём проблема
Dj_SheLL вне форума Ответить с цитированием
Старый 23.11.2010, 13:16   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,245
По умолчанию

Цитата:
Сам ADOQuery связан с DataSource,а DataSource связан с ADOTable
мне кажется, что тут собака и порылась...
у DBGrid есть свойство DataSource
там должен быть указан Ваша источник данных (пусть будет, для простоты DataSource1)
у DataSource1 есть свойство DataSet - там нужно указать Ваш AdoQuery1
А свойство DataSource у ADOQuery1 оставьте ПУСТЫМ!
в принципе это всё!
(раз ADOQuery1.Open ошибки не выдаёт, значит связь adoquery c БД через Connection или ConnectionString уже задана правильно)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.11.2010, 13:33   #7
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
у DataSource1 есть свойство DataSet - там нужно указать Ваш AdoQuery1
Не вариант.Там указан ADOTable1,если поменять,тогда вылет с ошибкой.Таблица же не подключенна получается.
Dj_SheLL вне форума Ответить с цитированием
Старый 23.11.2010, 13:39   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Цитата:
у DataSource1 есть свойство DataSet ... Там указан ADOTable1
Тогда где ты хочешь увидеть результат запроса AdoQuery1? В Гриде, который подключен к ADOTable1?
_SERGEYX_ вне форума Ответить с цитированием
Старый 23.11.2010, 13:48   #9
Dj_SheLL
Форумчанин
 
Аватар для Dj_SheLL
 
Регистрация: 14.10.2009
Сообщений: 128
По умолчанию

Цитата:
Сообщение от _SERGEYX_ Посмотреть сообщение
В Гриде, который подключен к ADOTable1?
Ну да...или я что-то не правильно делаю?Или нужно отдельный грид для "поиска" делать?
Dj_SheLL вне форума Ответить с цитированием
Старый 23.11.2010, 14:02   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,245
По умолчанию

Цитата:
Цитата:
В Гриде, который подключен к ADOTable1?
Ну да...или я что-то не правильно делаю?Или нужно отдельный грид для "поиска" делать?
Делать или не делать отдельный грид - это Вам, как программисту решать!
Только поймите, грид отображает то, что Вы хотите, чтобы он отображал! Хотите таблицу - цепляйте его а ADOTable1
хотите результаты выборки - цепляйте его к ADOQuery1
(можно, кстати, программно переключать)

Цитата:
Не вариант.Там указан ADOTable1,если поменять,тогда вылет с ошибкой.
А почему Вы не пользуетесь Connection ?! Это и удобнее и проще, да и, имхо, это более правильно!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выполняется HTTP запрос Kreadlling Win Api 1 03.05.2010 20:40
SELECT SQL vmilyoshin Помощь студентам 1 20.02.2010 09:41
Не выполняется запрос в SQL ivp88 БД в Delphi 5 17.01.2008 10:30
Почему не выполняется запрос? chingiz БД в Delphi 2 27.05.2007 21:56