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

Вниз

Извлечение данных посредством ADODataSet   Найти похожие ветки 

 
Barcebel   (2004-08-11 15:51) [0]

Возникла следующая проблема.
TADODataSet содержит свойства FieldCount и RecordCount, а также
свойство Fields. Используя сочетание FieldCount и Fields, я могу получить названия полей. Как мне получить данные, содержищиеся в этих полях, для каждой записи?


 
Соловьев ©   (2004-08-11 15:52) [1]

FieldByName(Fields[i]).Value


 
46_55_41_44 ©   (2004-08-11 15:58) [2]

1)
 TADODataset.FieldByBName(FieldName : String).AsString
                                             .AsInteger
                                             .asVariant
                                             .и т.д.
Пример:
 S := Query1.FieldByName("Name").AsString;
 I := Query1.FieldByName("Age").AsInteger;
в зависимости от типа поля...

2) TADODataset.Fields[i].Value
Пример:
 i := Query1.FieldByName("Age").AsVariant;
где i либо Variant либо Integer


 
Barcebel   (2004-08-11 16:16) [3]

Уточню свой вопрос.
Как, перемещаясь в цикле от начала до RecordCount, получить
значение текущей записи в текущем поле?
Есть ли методы на подобии
ADODataSet1.Records[i].GetValue


 
46_55_41_44 ©   (2004-08-11 16:22) [4]

1)
 repeat
   for i := 0 to ADODataSet.FieldCount - 1 do
   begin
     Variable := ADODataSet.Fields[i].Value;
     ...
   //Ну вобщем делай с этими данными, что хочешь!!!
   end;
   ADODataSet.Next;
 Until ADODataSet.Eof;
2)
 for i := 0 to ADODataSet.RecordCount - 1 do
 begin
   for j := 0 to ADODataSet.FieldCount - 1 do
   begin
     ...ADODataSet.Fields[i].Value;...
   //Ну вобщем делай с этими данными, что хочешь!!! :))
   end;
 end;


 
Соловьев ©   (2004-08-11 16:30) [5]


>  for i := 0 to ADODataSet.RecordCount - 1 do

Да уж...Читайте книги. или хелп хоть чуть-чуть
The dataset component must be active for RecordCount to provide a valid number. Should ADO not be able to determine that actual number of rows, RecordCount will return a value of negative one (-1).

Нужно ждругое свойство юзать

while not ADODataSet.Eof do begin
//тут чего-то делаем с полями
ADODataSet.Next;
end;


 
Barcebel   (2004-08-11 17:43) [6]

Вы абсолютно правы. Используя ADODataSet1.Next, получил нужный
результат. Кстати, пример нашел в хелпе.

P.S. А вообще я все не на Delphi, а на Builder делал.
VCL в сочетании с C++ и WinAPI - отличный инструмент.



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

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

Наверх




Память: 0.48 MB
Время: 0.045 c
4-1090427602
Unknown Mystic
2004-07-21 20:33
2004.09.05
Как програмно отличить один ПК от другого?


3-1092146946
Koala
2004-08-10 18:09
2004.09.05
Как записать в поле даты - Null


3-1092168310
Zif
2004-08-11 00:05
2004.09.05
Можно ли в ADOQuery соединить несколько таблиц?


6-1088658782
Артем К.
2004-07-01 09:13
2004.09.05
Присутствует ли в сети компьютер с введенным в edit IP-адресу


1-1092834503
Erik1
2004-08-18 17:08
2004.09.05
Как прямо записать в структуру TMaps = set of TMap число?