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

Вниз

TClientDataSet (TDataset) проапдейтить поле   Найти похожие ветки 

 
AV ©   (2012-02-07 16:17) [0]

подумал, что велосипед поди пишу..

procedure TTxtToCDS.UpdateField(sNameField: string; var vValue: Variant);
var
 BM: TBookmark;
begin
 if FCDS.FindField(sNameField)= nil then
 begin
   if vValue = -1 then
     vValue := -11 else
     vValue := -1;
   Exit;
 end;
 BM := FCDS.GetBookmark;
 FCDS.First;
 while not(FCDS.Eof) do
 begin
   FCDS.Edit;
   FCDS.FieldByName("sNameField").Value := vValue;
   FCDS.Post;
   FCDS.Next;
 end;
 FCDS.GotoBookmark(BM);
 FreeAndNil(BM);
end;

а еще where часть неплохо бы..

(Запросом нельзя! :) , (т.к. из текстовых файлов подгружается, формата наперед неизвестного, к-рый вычисляется по ходу))


 
И. Павел ©   (2012-02-07 16:47) [1]

>   FCDS.Post;
>   FCDS.Next;

Одного достаточно.


 
Ega23 ©   (2012-02-07 16:49) [2]

Ничего не понял, но DisableControls/EnableControls я бы таки включил. :)


 
AV ©   (2012-02-07 17:42) [3]


> Одного достаточно.

хм.. посмотрю.. что-то не уверен


> Ничего не понял, но DisableControls/EnableControls я бы
> таки включил. :)

Включу :)
ну например, есть много разных файлов, формата с разделителем или позиционные, удобнее с ними работать как с таблицей
мой класс делает
FileDS := TTxtToCDS.Create;
формата с разделителем
FileDS.Delimetr := ";";
FileDS.DefineClientDataSetFields("UACCOUNT,ftString,50;UPHONE,ftString,10;user_i d,ftInteger,0");
или
позиционные
FileDS.Delimetr := "";
FileDS.DefineClientDataSetFields("UACCOUNT,ftString,50,0,30;UPHONE,ftString,10;R SLT,ftInteger,0");

 FileDS.LoadFromFile("1.txt");

Получаю таблицу (ClientDataSet) из файла вида
FNs47569;0123456789;-1
FNs47569;0213456789;-1
FNs47569;0132456789;-1
FNs47569;0123566789;-1

в обычном SQL что бы проадейтить поле RSLT надо написать update T set RSLT = 1
А в файле что бы такое сделать, пишу
FileDS := TTxtToCDS.Create;
FileDS.DefineClientDataSetFields("UACCOUNT,ftString,50;UPHONE,ftString,10;user_i d,ftInteger,0");
FileDS.LoadFromFile("1.txt");

арбайтен с UACCOUNT UPHONE
и

FileDS.UpdateField("RSLT", 1);
FileDS.SaveToFile("1-complete.txt");


 
И. Павел ©   (2012-02-08 08:27) [4]

> хм.. посмотрю.. что-то не уверен

Из справки по TDataSet:
Call Next to move to the next record in the dataset, making it the active record. Next posts any changes to the active record



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

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

Наверх




Память: 0.45 MB
Время: 0.063 c
15-1348084386
AV
2012-09-19 23:53
2013.03.22
Простой вопрос по TwebBrowser(я так думаю,что простой:)


15-1351676690
Dimka Maslov
2012-10-31 13:44
2013.03.22
Какая муза


15-1329220586
tj.nelson
2012-02-14 15:56
2013.03.22
Вызов функции формы 1 из формы 2, реально??


6-1262521995
Indy 10
2010-01-03 15:33
2013.03.22
Перенос проекта Indy 9 > Indy 10. Проблема с IdTCPServerExecute.


2-1343932360
Drowsy
2012-08-02 22:32
2013.03.22
Какой таблице принадлежит запись со значением ключа?





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