Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

после выполнения 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;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.04 c
8-1087792169
Shnaider
2004-06-21 08:29
2004.09.05
Эквалайзер


11-1080221274
user
2004-03-25 16:27
2004.09.05
Как поднять скрол в верхнюю позицию не мышкой а програмно?


14-1092569920
ikivio
2004-08-15 15:38
2004.09.05
Появился новый процесс: UsrPrmpt.exe


1-1092995437
Ivolg
2004-08-20 13:50
2004.09.05
Стили


1-1092729948
Russko
2004-08-17 12:05
2004.09.05
PageControl и горячие клавищи