Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Вниз

2 Query на одну таблицу   Найти похожие ветки 

 
skiph ©   (2005-09-02 07:03) [0]

Есть 2 Query, которые ссылаются на одну базу - одна сортирует данные, другая - нет (служит для редакции данных, я уже рассказывал в другой теме про мою задачу). Использую следующий код:

While (i<=j)and not Query.Eof do
 begin
  mas[i,1]:=Query.FieldByName("Name_b").AsString;
  mas[i,2]:=Query.FieldByName("FAKT_ADR").AsString+#10+"Тел.: "+Query.FieldByName("TFON").AsString;
    mas[i,3]:="Дир. - "+Query.FieldByName("DFIO").AsString+#10+"Гл.б. - "+Query.FieldByName("GBuh").AsString;
    mas[i,4]:=Query.FieldByName("Primech").AsString;
    qEditQuery.First;
    if Query1.FieldByName("name_b").AsString<>""
     then qEditQuery.Locate("name_b",Query1.FieldValues["name_b"],[])
     else qEditQuery.Locate("name_b;primech",VarArrayOf([Query1.FieldValues["name_b"],Query1.FieldValues["primech"]]),[]);
    qEditQuery.Edit;
    qEditQuery.FieldByName("DataPrint").AsDateTime:=CurDate;
    qEditQuery.Post;
    Query.Next;
    inc(i);
   end;


Где, соответственно, Query - запрос с отсортированными данными, qEditQuery - с неотсортированными. Проблема в следующем. При трассировке на первом проходе цикла: Query.RecNo=1, заношу в массив нужные мне данные и хочу сделать изменения в соответствующей записи, для этого в qEditQuery нахожу нужную ее и изменяю поле (команда qEditQuery.Post выполняется быстро). На втором цикле Query.RecNo уже равен 2, но на команде qEditQuery.Post программа "задумывается" на несколько секунд, после чего Query перескакивает на первую запись (Query.RecNo=1)! В чем заключается проблема, какой параметр нужно изменить, чтобы подобного не происходило?
Пробовал выносить Post за конец цикла, но проблемы это не решало: программа задумывалась на qEditQuery.First.
Можно, конечно, вместо Query.Next использовать Query.RecNo:=i, но хочется разобраться в этом. Потом может не так тормозить будет. (движок BDE)


 
Ильш   (2005-09-02 08:36) [1]

а нафига ваще Locate использовать? раз уж пользуешься запросами так и делай все через SQL!


 
Sergey13 ©   (2005-09-02 09:12) [2]

>В чем заключается проблема
В том, что ты из мухи сделал здоровенного слона, и успешно заблудился между его ногами/бивнями. 8-)
Зачем 2 кверика? Сделай один и редактируй его. Если не получится напрямую, используй TUpdateQuery.


 
skiph ©   (2005-09-05 05:05) [3]

>Sergey13 ©   (02.09.05 09:12) [2]
>>В чем заключается проблема
>В том, что ты из мухи сделал здоровенного слона, и успешно заблудился между его ногами/бивнями. 8-)

Скорее всего :) Я с BDE уже давным давно не работал, а UpdateQuery вообще никогда не пользовался (не нужно было). Зато за эти дни я столько узнал о ногах и бивнях!!!!! :)


 
ЮЮ ©   (2005-09-05 06:07) [4]

глянь, нет ли у qEditQuery обработчика AfterPost, ибо описанные тобой ужасти порождаются исключительно твоим кодом :)


 
skiph ©   (2005-09-05 07:33) [5]

Точно есть! Спасибо, не посмотрел



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.041 c
1-1127876176
Bigman
2005-09-28 06:56
2005.10.16
Как перенести Код из Visual Basic в Delphi?


2-1126978754
Курсант
2005-09-17 21:39
2005.10.16
Table


1-1127716429
npr2
2005-09-26 10:33
2005.10.16
MS Access


1-1127802201
Mishenka
2005-09-27 10:23
2005.10.16
Как отловить событие перехода фокуса?


1-1127490315
userrrrr
2005-09-23 19:45
2005.10.16
как создать idhttp





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский