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

Вниз

Как обновить 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
1-82690
Julya
2002-11-14 16:16
2002.11.25
Подскажите функцию, которая возвращает следующую дату!


6-82883
Schummi
2002-03-24 09:38
2002.11.25
Отправка E-mail ов


1-82772
Comp
2002-11-15 12:47
2002.11.25
Assambler


3-82681
oss
2002-11-06 16:48
2002.11.25
диалекты в Interbase


14-82986
Pascal's programmer
2002-11-07 05:30
2002.11.25
Посоветуйте струйный принтер





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