Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

после выполнения SQL запроса результат не отображается [D7, Paradox]


Страницы:   1 2 3 4

Алексей ©   (2004-08-09 13:35:00) 

Здравствуйте.
Собственно это и есть вопрос. После выполнения SQL запроса результат не отображается в DBGrid. Даже столбцов становится не видно, как будто нет подключения к базе данных. Тоесть когда программа запускается, то всё работает как задано в начале на этапе разработки, а потом, когда меняю SQL запрос програмно, в  DBGrid ничего не видно.
DataModule2.Query1.Close;
DataModule2.Query1.SQL.Clear;
DataModule2.Query1.SQL.Add('SELECT M.id');
DataModule2.Query1.SQL.Add('FROM "Main_FIO.db" As M, "Adress.db" As A, "Pasport.db" As P, "Rozisknoe_Delo.db" As RD');
DataModule2.Query1.SQL.Add('WHERE ' + s_GreatFilter + ';');
DataModule2.Query1.Open;
Здесь s_GreatFilter програмно созданное условие запроса типа M.DataRojdeniya = "31.12.2000".
Нужно отобрать ключевые поля M.id записей таблицы Main_FIO.db отвечающих заданному условию s_GreatFilter .
Что я делаю неправильно?


Алексей   (2004-08-09 16:45:00) [21]

Снимаю Шляпу.
Всё работает.
где ж я тогда промазал???


Соловьев   (2004-08-09 16:35:00) [22]


> Дак и я не отцеплял, вроде... :)

создай новое приложение положи грид, сорс,кверю и две кнопки.
Свжи сорс с кверей. а грид с сорсом. А по кнопкам распиши открытие разных таблиц типа

procedure TForm1.Button1Click(Sender: TObject);
begin
   with Query1 do
   begin
       if active then Close;
       SQL.Clear;
       SQL.Add('select * from  table1');
       Open;
   end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   with Query1 do
   begin
       if active then Close;
       SQL.Clear;
       SQL.Add('select * from  table2');
       Open;
   end;
end;

запусти и попробуй.


Алексей   (2004-08-09 16:33:00) [23]

Дак и я не отцеплял, вроде... :)


Sergey13   (2004-08-09 16:33:00) [24]

Есть определенный запрос с полями вывода. На нем стоит грид с прописанными в дизайне полями и т.д. Вдруг в запросе меняется ВСЕ. Даже если сам по себе запрос корректен...


Соловьев   (2004-08-09 16:26:00) [25]


> [40] Алексей   (09.08.04 16:25)

сама она не отцепляется.


Алексей   (2004-08-09 16:25:00) [26]

Val ©  
тоесть сама сетка отцепляется, и если после выполнения запроса её обратно прицепить програмно, то всё заработает? МЫСЛЬ. надо попробовать.


Алексей   (2004-08-09 16:22:00) [27]

Для Val ©  
согласен, но я меняю SQL запрос по форме
DataModule2.Query1.Close;
...
DataModule2.Query1.Open;
сам грид от DataSourse не отвязываю, работаю только с TQuery? почему же он не привязывается обратно???


Sergey13   (2004-08-09 16:19:00) [28]

2[35] Val ©   (09.08.04 16:16)
>согласитесь, гриду все-равно что отображать :)
Согласен, если ему внятно объяснить, то да. 8-)


Val   (2004-08-09 16:18:00) [29]

>[34] Алексей   (09.08.04 16:13)
Не обязательно. Вы можете также отцепить его от сетки, хотя запрос. отработает.Соответсвенно, сетка ничего не покажет.
Проверьте свои ощущения с помощью пошагового выполнения.


Алексей   (2004-08-09 16:17:00) [30]

Для Val ©
И как его привязать :)
Для Sergey13 ©
Аналогия понятна и в общем с ней согласен, и как конкретно поступать в моём случае, да и вообще, на будущее?


Val   (2004-08-09 16:16:00) [31]

>[32] Sergey13 ©   (09.08.04 16:13)
согласитесь, гриду все-равно что отображать :)


Val   (2004-08-09 16:13:00) [32]

Какая непонятка? Вы закрываете/отвязываете набор данных, который "привязан" к сетке  - DBGrid1.Datasource.DataSet. И TDataBase здесь не причем, если все остальное продолжает работать.


Алексей   (2004-08-09 16:13:00) [33]

Ощущение такое что почему то TQuery отключается от DataBase а обратно не подключается...


Sergey13   (2004-08-09 16:13:00) [34]

2[31] Алексей   (09.08.04 16:09)
Стоят два дома. Один на постоянном фундаменте - нормальный. Другой - на фиг знает каком, при быстрой смене фундамента - падает. Примерно такая аналогия. Вывод - строить нормально. ИМХО, не стОит менять запрос под гридом настолько кардинально.


Алексей   (2004-08-09 16:09:00) [35]

Sergey13 ©  
Так я ж об этом и говорю. База данных не закрывается (элемент DataBase), потому что к ней  паралельно присоеденены и TTable и TQuery? на обоих повешаны гриды (через DataSourse) и тот что на TQuery после запроса умирает а на TTable продолжает жить и работать. Вот в чём непонятка.


Sergey13   (2004-08-09 16:03:00) [36]

2Алексей   (09.08.04 15:56)
>По идее он должен отобразить все поляid таблицы Main_FIO.db
>SELECT M.idFROM

>грид умирает и без него
Значит думай над [18]


Алексей   (2004-08-09 16:02:00) [37]

Для Соловьев ©
Add All Fields на Query работает (на этапе программирования), на гриде список пустой, поэтому, если я не ошибаюсь, грид заполняется в соответствии с полями таблицы? по правой кнопке предлагает редактор колумнов :)


Алексей   (2004-08-09 15:56:00) [38]

Для Sergey13 ©
согласен, забыл показать скобки, в программе они есть, прописал лишний SELECT и пара неточностей с моей стороны в общем исправляю
SELECT M.id
FROM "Main_FIO.db" As M, "Adress.db" As A, "Pasport.db" As P, "Rozisknoe_Delo.db" As RD
WHERE (M.Familiya LIKE "%АБВ%") AND (M.Imiya LIKE "%АБВ%")
AND (A.A_TipAdresa LIKE "%АБВ%" AND M.ID=A.A_Main_ID) AND (P_PNomerPasprta LIKE "%АБВ%" AND M.ID=P.M_ID) AND (RD_NomerRD LIKE "%АБВ% AND M.ID=RD.M_ID)
это пример получаемого запроса ко всем таблицам по результатам которого должны отбираться записи в главной таблице.
Так это задумывалось.
но вопрос не в запросе :), грид умирает и без него, SELECT *
FROM Main_FIO.db програмно и он умер.


Соловьев   (2004-08-09 15:43:00) [39]

2 Алексей
Так что там по посту [14]?


Sergey13   (2004-08-09 15:40:00) [40]

2[25] Алексей   (09.08.04 15:36)
Соловьев ©  
>По идее он должен отобразить все поля id таблицы Main_FIO.db
Идея не воплощена в жизнь.


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо