Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];
ВнизВопрос про клозет датасет Найти похожие ветки
← →
vegarulez © (2008-01-28 05:45) [0]Привет всем мастерам! Вопрос такой: я выбираю в цикле 10 записей из таблицы произвожу с ними манипуляции, и потом в этом же цикле в зависимости от результата манипуляций мне надо обновить запись, с которой в данный момент работаю, а так как она открыта в настоящий момент то получается, что апдейтить её в базе не получается... эксцептион -> процессор на сотку...
Подскажите как можно выбрать 10 записей в какой -то созданый допустим мною датасет, и уже потом работать с этим датасетом, закрыв при этом запрос к базе, чтобы эти записи были в бд разблокированы на апдейт.
использую D7+ Zeos +Accessprocedure 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