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

Вниз

Вопрос про клозет датасет   Найти похожие ветки 

 
vegarulez ©   (2008-01-28 05:45) [0]

Привет всем мастерам! Вопрос такой: я выбираю в цикле 10 записей из таблицы произвожу с ними манипуляции, и потом в этом же цикле в зависимости от результата манипуляций мне надо обновить запись, с которой в данный момент работаю, а так как она открыта в настоящий момент то получается, что апдейтить её в базе не получается... эксцептион -> процессор на сотку...  
Подскажите как можно выбрать 10 записей в какой -то созданый допустим мною датасет, и уже потом работать с этим датасетом, закрыв при этом запрос к базе, чтобы эти записи были в бд разблокированы на апдейт.
использую D7+ Zeos +Access

procedure TF1.DBW;
var
 s:string;
 j,i:integer;
begin

   with myzquery do
   try
     myzquery.Sql.Text:="Select top 10 `id`,`a`,`b` from `c` WHERE `d`=1 and e=-1";
     myzquery.open;
     if myzquery.RecordCount>0 then
     BEGIN
     While not Eof do
      Begin
       for j:=0 to myzquery.FieldCount-1 do
       db_values[j]:=myzquery.Fields[j].AsString;
        begin
         
          ...
          //далее блок действи с записями db_values[j] в ходе которых формируются переменные resultat[i]
          ...
         
          myzquery1.Sql.Text:="Update `c` set `d`="+resultat[4]+", `e`="+resultat[1]+",`a`=""+resultat[3]+"" where `id`="+db_values[0]+"";
            myzquery1.ExecSql();
            myzquery1.close;

       Next;
      End;
     END;
     
   except
   on E: Exception do
    Begin
     MessageDlg("Error2" +#10#13+ E.Message +#10#13+ inttostr(E.HelpContext), mtWarning,[mbOk], 0);
     myzquery.Close;
     myzquery1.close;
    End;
   end;
end;


 
ketmar ©   (2008-01-28 07:36) [1]

а что, создать ещё один TQuery нельзя? если уж неохота сначала накопить результаты и закрыть этот query?


 
vegarulez ©   (2008-01-28 07:45) [2]

Всмысле? не понимаю...?

так там как раз 2 TZQuery участвуют... myzquery и myzquery1
while идёт  по myzquery, а update по myzquery1...


 
ketmar ©   (2008-01-28 08:51) [3]

мда. не заметил, извиняюсь.

впрочем, вторая часть рекомендации в силе.


 
Sergey13 ©   (2008-01-28 09:14) [4]

> [0] vegarulez ©   (28.01.08 05:45)

1. Недурно бы запросы делать через параметры. Почему имена полей в апострофах?
2. Недурно бы весь код посмотреть, ибо есть сомнение - в том ли цикле ты делаешь запрос.

> получается... эксцептион

Какая ошибка?


 
ketmar ©   (2008-01-28 09:17) [5]

>[4] Sergey13©(28.01.08 09:14)
какая, какая… в архитектуре. ключевое слово — access. %-)


 
MsGuns ©   (2008-01-28 10:39) [6]

Отказаться от редактирования в гриде, заменив правку запросами с переоткрытием по мере необходимости.


 
Sergey13 ©   (2008-01-28 10:50) [7]

> [6] MsGuns ©   (28.01.08 10:39)
> Отказаться от редактирования в гриде

А оно тут есть? 8-)


 
Anatoly Podgoretsky ©   (2008-01-28 15:06) [8]

> vegarulez  (28.01.2008 05:45:00)  [0]

Ну например TClientDataset + CachedUpdates



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

Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.043 c
11-1180250317
Dy1
2007-05-27 11:18
2008.02.24
выбор мышкой компонента


6-1180947886
ziArt
2007-06-04 13:04
2008.02.24
Отключить брандмауер ХР


15-1201102321
OSokin
2008-01-23 18:32
2008.02.24
Исходники декомпилятора


15-1201188142
Anatoly Podgoretsky
2008-01-24 18:22
2008.02.24
Что хотят, то и творят.


2-1201691592
Kolan
2008-01-30 14:13
2008.02.24
Как синхронизировать прокрутку двух StringGrid?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский