Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Внизпосле выполнения SQL запроса результат не отображается Найти похожие ветки
← →
Алексей (2004-08-09 16:25) [40]Val ©
тоесть сама сетка отцепляется, и если после выполнения запроса её обратно прицепить програмно, то всё заработает? МЫСЛЬ. надо попробовать.
← →
Соловьев © (2004-08-09 16:26) [41]
> [40] Алексей (09.08.04 16:25)
сама она не отцепляется.
← →
Алексей (2004-08-09 16:33) [42]Дак и я не отцеплял, вроде... :)
← →
Sergey13 © (2004-08-09 16:33) [43]Есть определенный запрос с полями вывода. На нем стоит грид с прописанными в дизайне полями и т.д. Вдруг в запросе меняется ВСЕ. Даже если сам по себе запрос корректен...
← →
Соловьев © (2004-08-09 16:35) [44]
> Дак и я не отцеплял, вроде... :)
создай новое приложение положи грид, сорс,кверю и две кнопки.
Свжи сорс с кверей. а грид с сорсом. А по кнопкам распиши открытие разных таблиц типа
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:45) [45]Снимаю Шляпу.
Всё работает.
где ж я тогда промазал???
← →
Алексей (2004-08-09 16:48) [46]Для Sergey13 ©
так в гриде я дизайн и не прописывал. а в примере Уважаемого Соловьев © всё работает.
← →
Алексей (2004-08-09 16:50) [47]Для Соловьев ©
если можно, вчём точно моя ошибка, хотелось бы понять, а не тупо скопировать код кнопки.
← →
Sergey13 © (2004-08-09 16:52) [48]2[46] Алексей (09.08.04 16:48)
>так в гриде я дизайн и не прописывал
А в датасете?
← →
Алексей (2004-08-09 16:58) [49]Для Sergey13 ©
А где там прописал? Нет вроде...
← →
Sergey13 © (2004-08-09 17:02) [50]2[49] Алексей (09.08.04 16:58)
>А где там прописал? Нет вроде...
Двойной клик на квери
← →
Алексей (2004-08-09 17:05) [51]и что прикольно... эти кнопочки и мой грид оживляют (а старая по прежнему убивает)
← →
Алексей (2004-08-09 17:09) [52]А... так там я уже убрал нафиг... всё равно убивает... киллер я наверное профессиональный... факт... чтото я намудрил с обращением к квери, может Соловьев © подскажет, а то я уже не врубаюсь сам...
← →
Соловьев © (2004-08-09 17:17) [53]код приведи ввесь
← →
Алексей (2004-08-09 17:21) [54]Всего Запроса?
← →
Соловьев © (2004-08-09 17:24) [55]проги, ну и запросов
← →
Алексей (2004-08-09 17:33) [56]Соловьев ©
По Вашим кнопочкам всё заработало, а мой запрос раньше выглядел так
Формируем условия поиска и присваиваем результат переменной s_GreatFilter
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");
Формируем условия поиска и присваиваем результат переменной s_GreatFilter
DataModule2.Query1.SQL.Add("WHERE " + s_GreatFilter + ";");
DataModule2.Query1.Open;
в таком порядке.
← →
Соловьев © (2004-08-09 17:34) [57]
> 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("FROM "Main_FIO.db" As M");
← →
Алексей (2004-08-09 17:35) [58]Ой... В Первый раз "Формируем условия поиска и присваиваем результат переменной s_GreatFilter" этого там нет, этол дальше.
Сам запрос с Вашими кнопками работает корректно.
← →
Алексей (2004-08-09 17:37) [59]И что там не так?
← →
Алексей (2004-08-09 17:40) [60]Много лишних таблиц?
← →
Алексей (2004-08-09 17:50) [61]Вот сам код запроса, у меня некоторые его части закоментированы, искал ошибку
procedure TForm6.Button1Click(Sender: TObject);
var
s_GreatFilter, s_Filter: String;
begin
s_GreatFilter := "";
Button1.Enabled := False;
//-------------------------------
//-------------------------------
//Работаем с таблицей Main_FIO
//
If Form6.Edit1.Text <> "" then if s_GreatFilter <> "" then s_GreatFilter :=
s_GreatFilter + " AND" + "(" + "M.Familiya = " + Form6.Edit1.Text + ")"
else s_GreatFilter := "(" + "M.Familiya = " + Form6.Edit1.Text + ")";
If Form6.Edit2.Text <> "" then if s_GreatFilter <> "" then s_GreatFilter :=
s_GreatFilter + " AND" + "(" + "M.Imiya LIKE "%" + Form6.Edit2.Text + "%"" + ")"
else s_GreatFilter := "(" + "M.Imiya LIKE "%" + Form6.Edit2.Text + "%"" + ")";
If Form6.Edit3.Text <> "" then if s_GreatFilter <> "" then s_GreatFilter :=
s_GreatFilter + " AND " + "(" + "M.Pol LIKE "" + Form6.Edit3.Text + """ + ")"
else s_GreatFilter := "(" + "M.Pol LIKE "" + Form6.Edit3.Text + """ + ")";
If Form6.DateTimePicker1.Checked = true then If Form6.DateTimePicker2.Checked = false
then begin
if s_GreatFilter <> "" then s_GreatFilter := s_GreatFilter + " AND " + "(" +
"M.DataRojdeniya = " + """ + FormatDateTime("dd.mm.yyyy",Form6.DateTimePicker1.Date) +
""" + ")"
else s_GreatFilter := "(" + "M.DataRojdeniya = " + """ +
FormatDateTime("dd.mm.yyyy",Form6.DateTimePicker1.Date) + """ + ")"
end else begin
if s_GreatFilter <> "" then s_GreatFilter := s_GreatFilter + " AND " + "(" +
"M.DataRojdeniya <=" + """ + FormatDateTime("dd.mm.yyyy",Form6.DateTimePicker1.Date) + """ +
" AND " + "M.DataRojdeniya >=" + """ + FormatDateTime("dd.mm.yyyy",Form6.DateTimePicker2.Date)
+ """ + ")"
else s_GreatFilter := "(" + "M.DataRojdeniya <=" + """ +
FormatDateTime("dd.mm.yyyy",Form6.DateTimePicker1.Date) + """ + " AND " +
"M.DataRojdeniya >=" + """ + FormatDateTime("dd.mm.yyyy",Form6.DateTimePicker2.Date) +
""" + ")";
end;
//-------------------------------
//Закончили работу с таблицей Main_FIO
//
//Начинаем работу с таблицей Adres
//
If Form6.Edit9.Text <> "" then if s_GreatFilter <> "" then s_GreatFilter :=
s_GreatFilter + " AND " + "(" + "A.A_TipAdresa LIKE "" + Form6.Edit9.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")"
else s_GreatFilter := "(" + "A.A_TipAdresa LIKE "" + Form6.Edit9.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")";
If Form6.Edit10.Text <> "" then if s_GreatFilter <> "" then s_GreatFilter :=
s_GreatFilter + " AND " + "(" + "A.A_NasPunkt LIKE "" + Form6.Edit10.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")"
else s_GreatFilter := "(" + "A.A_NasPunkt LIKE "" + Form6.Edit10.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")";
If Form6.Edit11.Text <> "" then if s_GreatFilter <> "" then s_GreatFilter :=
s_GreatFilter + " AND " + "(" + "A.A_Adres LIKE "" + Form6.Edit11.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")"
else s_GreatFilter := "(" + "A.A_Adres LIKE "" + Form6.Edit11.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")";
If Form6.Edit12.Text <> "" then if s_GreatFilter <> "" then s_GreatFilter :=
s_GreatFilter + " AND " + "(" + "A.A_Dom LIKE "" + Form6.Edit12.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")"
else s_GreatFilter := "(" + "A.A_Dom LIKE "" + Form6.Edit12.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")";
If Form6.Edit13.Text <> "" then if s_GreatFilter <> "" then s_GreatFilter :=
s_GreatFilter + " AND " + "(" + "A.A_Kvartira LIKE "" + Form6.Edit13.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")"
else s_GreatFilter := "(" + "A.A_Kvartira LIKE "" + Form6.Edit13.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")";
If Form6.Edit14.Text <> "" then if s_GreatFilter <> "" then s_GreatFilter :=
s_GreatFilter + " AND " + "(" + "A.A_Telefon LIKE "" + Form6.Edit14.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")"
else s_GreatFilter := "(" + "A.A_Telefon LIKE "" + Form6.Edit14.Text + """ +
" AND " + "M.id = A.A_Main_id" + ")";
//Закончили работу с таблицей Adres
//
//Начинаем работу с таблицей Pasport
//
...
...
...
//Записываем полученное условие отбора в запрос Query1 и передаём в фильтр Main_FIO
//
If s_GreatFilter <> "" then
with DataModule2.Query1 do
begin
if active then Close;
SQL.Clear;
SQL.Add("SELECT M.id");
SQL.Add("FROM "Main_FIO.db" As M, "Adress.db" As A, "Pasport.db" As P, "Rozisknoe_Delo.db" As RD");
SQL.Add("WHERE " + s_GreatFilter);
Open;
end;
begin
end;
//смотрю текст SQL запроса
Form1.Memo2.Text := DataModule2.Query1.SQL.Text;
//------------------------------------------------------------------------------
Close;
end;
Примерно так
← →
Соловьев © (2004-08-09 17:54) [62]
> Close;
Зачем?
> SQL.Add("FROM "Main_FIO.db" As M, "Adress.db" As A, "Pasport.db"
> As P, "Rozisknoe_Delo.db" As RD");
если ты накладываешь условие на таблицы, то накладывай и на список таблиц
← →
Алексей (2004-08-09 17:59) [63]и если можно синтаксис для LIKE чтобы определять совпадения по части слова, как его в программе записать
поле LIKE "%слово%"
правильно?
← →
Алексей (2004-08-09 18:02) [64]Для Соловьев ©
ну...
>Close;
а как редактировать SQL на открытой таблице?
>если ты накладываешь условие на таблицы, то накладывай и на список таблиц
это про какие условия?
← →
Алексей (2004-08-09 18:23) [65]В общем, в итоге понятен принцип (а причину определит время) как оживить мой грид. Большое спасибо всем кто откликнулся и помогал решать мою проблему. Было очень приятно с Вами общаться. Если в коде запроса что я привёл увидите ошибку, если не трудно, отпишите на мыло или здесь. До свидания.
Страницы: 1 2 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.58 MB
Время: 0.04 c