Форум: "Базы";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];
ВнизADO API определить количество записей Найти похожие ветки
← →
Dmitry_177 (2008-05-27 13:13) [0]Делаю соединение с БД и затем посредством SQL-запроса нужно считать информацию с таблицы.. Соединение с SQL-запросом сделал так:
var
DBConnection: _Connection;
DBRecordset: _Recordset;
begin
try
DBConnection := CoConnection.Create;
DBConnection.Provider := "Microsoft.Jet.OLEDB.4.0";
DBConnection.ConnectionString := "Data Source=c:\1.mdb";
DBConnection.Open("", "", "", -1);
DBRecordset := CoRecordSet.Create;
DBRecordset.Open("SELECT * FROM table", DBConnection, adOpenForwardOnly, adLockPessimistic, adCmdText);
теперь нужно считать все из DBRecordset.. Но.. DBRecordset.RecordCount почему-то всегда равно "-1", по идее это количество записей, которые какраз нужно считать.. Но т.к. оно равно "-1" этот код уже не будет работать:for iRec := 0 to DBRecordset.RecordCount - 1 do
begin
AddInTable(string(DBRecordset.Fields.Item[1].Value), string(DBRecordset.Fields.Item[2].Value));
DBRecordset.MoveNext;
end;
Подскажите пожалуйста как можно определить количество записей в DBRecordset чтобы потом в цикле считать их? Или может как-то еще можно?
← →
Palladin © (2008-05-27 13:24) [1]
> DBRecordset.RecordCount почему-то всегда равно "-1", по
> идее это количество записей, которые какраз нужно считать.
> .
идея твоя порочна. забудь про RecordCount вообще.
кроме for в паскале есть и другие циклы, а у рекордсета есть свойство eof
думай
← →
Reindeer Moss Eater © (2008-05-27 13:25) [2]как можно определить количество записей в DBRecordset чтобы потом в цикле считать их?
Для этого не надо знать количество записей.
← →
Dmitry_177 (2008-05-27 13:27) [3]
repeat
AddInTable(string(DBRecordset.Fields.Item[1].Value), string(DBRecordset.Fields.Item[2].Value));
DBRecordset.MoveNext;
until
DBRecordset.EOF;
придумал ))
← →
Reindeer Moss Eater © (2008-05-27 13:35) [4]а если рекордсет пустой?
← →
Anatoly Podgoretsky © (2008-05-27 13:37) [5]> Dmitry_177 (27.05.2008 13:27:03) [3]
Ну тогда готовься к исключению.
← →
Smile (2008-05-27 13:47) [6]Вместо repeat until используй
While not DBRecordset.EOF do
begin
end;
← →
Dmitry_177 (2008-05-27 15:28) [7]
> а если рекордсет пустой?
> Ну тогда готовься к исключению.
> Вместо repeat until используй
> While not DBRecordset.EOF do
> begin
>
> end;
По идее так не должно исключения возникнуть.. Я правильно понимаю?
← →
palva © (2008-05-27 16:42) [8]
> Я правильно понимаю?
Правильно.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2008.12.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c