![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
после выполнения SQL запроса результат не отображается [D7, Paradox]
Алексей © (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 14:38:00) [61]DBGrid просто "умирает", в нём ничего нет, никаких ошибок не возникает, программа работает. Когда DBGrid на форму ложишь, он пустой, вот такой же он и становится. Т.е. выглядит так, что когда я Query закрыл для создания SQL запроса он и базу данных закрыл, а потом когда его открываешь база данных закрыта, но ведь это бред, Query.Close не должен закрывать базу и не закрывет. В программе используются паралельно TTable и TQuerу подключенные к одному DataBase. Умирающий DBGrid подключён к TQuerу. Те что подключены к TTable продолжают всё показывать.
Sergey13 (2004-08-09 14:30:00) [62]2[2] Алексей (09.08.04 14:11)
>но стоит обработать запрос
Что за "обработать"? Конкретно.
SELECT * FROM Main_FIO.db
И
SELECT M.id FROM "Main_FIO.db" As M, "Adress.db" As A, "Pasport.db" As P, "Rozisknoe_Delo.db" As RD WHERE ' + s_GreatFilter
Это слегка разные вещи, не кажется тебе?
Да, и убери в запросе + ';'
Соловьев (2004-08-09 14:13:00) [63]
> но стоит обработать запрос, даже такой же как и был раньше
> (SELECT * FROM Main_FIO.db), и DBGrid умирает.
т.е.? ошибка? пустой набор данных?
localsql.hlp+table names
SELECT * FROM "Main_FIO.db"
Алексей (2004-08-09 14:11:00) [64]Наверно я неправильно объяснил. Когда поместил Query на DataModule2, задал базу данных, в SQL записал SELECT * FROM Main_FIO.db и в DBGrid появились и поля и их значения, всё нормально. Запускаю программу всё отображается, но стоит обработать запрос, даже такой же как и был раньше (SELECT * FROM Main_FIO.db), и DBGrid умирает. В нём нет ничего. С Query я только начал работать, до этого общался с TTable и всё делал через Filter, а тут прям как упёрся, не доходит что не так и всё тут.
Sergey13 (2004-08-09 13:39:00) [65]А как связаны "Main_FIO.db" , "Adress.db" , "Pasport.db" , "Rozisknoe_Delo.db" между собой в запросе? Просто у тебя, ИМХО, получается произведение всех таблиц и комп входит в ступор от объема. Покажи первоначальный запрос, когда "все работает".