Главная страница
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.058 c
4-1090673558
Случайно забежавший
2004-07-24 16:52
2004.09.05
Строка в двоичном коде


14-1092463001
KSergey
2004-08-14 09:56
2004.09.05
Про местный чат


1-1093007891
iBitmap
2004-08-20 17:18
2004.09.05
cm_mouseleave при MouseDown


3-1091776296
Рафик
2004-08-06 11:11
2004.09.05
Проблема с полями


6-1088787414
Я
2004-07-02 20:56
2004.09.05
Многопоточность закачки файлов по soap...синхронизация