Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

Как обновить TQuery не потеряв при этом текущей записи   Найти похожие ветки 

 
Ryser   (2002-11-05 13:37) [0]

Есть такая процедура
описываю ее в самом начале юнита

procedure RefreshQuery(AdoQuery : TAdoQuery; const FieldsForSearch: String);
var
AList : TList;
AVarArray : Variant;
i : Byte;
begin
AList := TList.Create;
try
AdoQuery.GetFieldList(AList, FieldsForSearch);
AVarArray := VarArrayCreate([0, AList.Count - 1], varVariant);
for i := 0 to Pred(AList.Count) do
AVarArray[i] := TField(AList.Items[i]).AsVariant;
AdoQuery.Close;
AdoQuery.Open;
AdoQuery.Locate(FieldsForSearch, AVarArray, []);
finally
AList.Free;
AVarArray.Free;//тут стояло "р" компилятор ругался-убрал
end;
end;

потом далее вызываю
.....
RefreshQuery(AdoQuery1,"id");
.....

теперь ругается на Invalid Variant Type Conversion
на месте
AdoQuery.Locate(FieldsForSearch, AVarArray, []);

Подскажите, пожалуйста!


 
BoxTer ©   (2002-11-05 13:45) [1]

Зачем так усложнять итого нелегкую жизнь...
А так:
procedure RefreshQuery(AdoQuery : TAdoQuery; const FieldsForSearch: String);
var pr:string;
Begin
pr:=ADOQuery.FieldByName(FieldsForSearch).asString;
ADOQuery.Close;
ADOQuery.Open;
ADOQuery.Locate(FieldsForSearch,pr,[...]);
end;
... и все ...


 
Ryser   (2002-11-05 13:51) [2]

Просто генитально! Благодарственное спасибо BoxTer-у!


 
Johnmen ©   (2002-11-05 13:58) [3]

>BoxTer © (05.11.02 13:45)

Зачем так упрощать итого простую жизнь...

>Ryser

Посмотри в сторону VarArrayOf.


 
SaS13 ©   (2002-11-05 14:01) [4]

у ADOQuery есть св-во Requery - работает быстрее, чем если просто закрыть и открыть заново.



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

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.013 c
1-82697
Юра
2002-11-13 11:59
2002.11.25
Модифицировать исполняемый файл.


3-82586
Maloi
2002-11-07 22:25
2002.11.25
Помогите! Как отловить ID только что добавленной записи?


14-82940
vidiv
2002-11-05 15:15
2002.11.25
x97:l97 => Enter => Ctrl+Shift+{кнопочка мастера диаграм}


3-82606
Fishka
2002-11-01 16:15
2002.11.25
Table(s) open. Cannot perform this operation. - Почему?


1-82805
Zolen
2002-11-13 18:01
2002.11.25
Две строки в ячейке Stringgrid