Главная страница
    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.46 MB
Время: 0.042 c
2-1201687447
Wolf
2008-01-30 13:04
2008.02.24
подскажите функцию добавления косой черты к пути


2-1201726799
iTester
2008-01-30 23:59
2008.02.24
if (st1 or st2)?


15-1200928515
smartleds
2008-01-21 18:15
2008.02.24
Коллеги подскажите как WinAmp к Delphi прикруттить


15-1200822319
Черный Шаман
2008-01-20 12:45
2008.02.24
И когда же этот CodeGear(ака Borland) сделают Delphi 64bit?


11-1181383929
rvi
2007-06-09 14:12
2008.02.24
Благодарность





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