Главная страница
    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.049 c
15-1201076825
samalex
2008-01-23 11:27
2008.02.24
Конвертация BMP в PDF


2-1201278587
Максим
2008-01-25 19:29
2008.02.24
форму трясет при движении


15-1201018123
@!!ex
2008-01-22 19:08
2008.02.24
Убрать сообщение об обрые связи..


11-1181737775
Nikfel
2007-06-13 16:29
2008.02.24
Почему в файле ресурсов программы не нужные данные.


2-1201621201
Первокласник Вася
2008-01-29 18:40
2008.02.24
Как правильно работать с TreeNode?





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