|
Работа с Firebird |
☑ |
0
Быдло замкадное
26.01.12
✎
09:27
|
Всем доброго утра. Есть подключение к базе Firebird и считывание данных, потом обход циклом. Подскажите как можно узнать количество строк в таблице которая от Firebird пришла???
СтрокаПодключения = "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=masterkey;DBNAME=sms89006:c:\SSA\SKD\codos_db\CODOS.GDB";//Рабочая
Connection = Новый COMObject("ADODB.Connection");
Connection.Open(СтрокаПодключения);
Command = Новый COMObject("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText = "ТЕКСТ ЗАПРОСА ЛЯЛЯЛЯ";
Command.CommandType = 1;
RecordSet = Новый COMObject("ADODB.RecordSet");
RecordSet = Command.Execute();
// Перебор данных
Если не RecordSet.EOF() = 1 тогда
RecordSet.MoveFirst();
Пока RecordSet.EOF() = 0 Цикл
|
|
1
Быдло замкадное
26.01.12
✎
09:28
|
Вот в этом RecordSet можно узнать количество строк..?
|
|
2
Ёпрст
гуру
26.01.12
✎
09:32
|
RecordCount
|
|
3
Ненавижу 1С
гуру
26.01.12
✎
09:37
|
вчера хранимую процедуру на Firebird написал - помнят еще руки! ))
расчет прибыли от продаж при списывании себестоимости по ФИФО
|
|
4
Быдло замкадное
26.01.12
✎
09:43
|
(2) RecordSet.RecordCount() всегда -1 возвращает
|
|
5
Быдло замкадное
26.01.12
✎
09:47
|
в поиске нашел:
Намудрили
Надо чтобы курсор был статический
и тогда RecordCount будет возвращать количество записей
Connection = Новый COMОбъект ("ADODB.Connection");
Connection.CursorLocation= 3;
|
|
6
Быдло замкадное
26.01.12
✎
09:47
|
Надеюсь на перебор строк этот CursorLocation не повлияет
|
|
7
Стальная Крыса
26.01.12
✎
10:06
|
для простоты я делаю MoveLast(), а потом обратно MoveFirst() :)
зы. работает в любых местах
|
|
8
Torquader
26.01.12
✎
17:26
|
(4) Всё зависит от режима запроса, если запрос исполняется на сервере и в режиме Forward Only, то ни количества строк ни возврата назад (как в (7)) не получится.
P.S. а вообще-то, количество элементов получают через SELECT COUNT(*), но FireBird устроен так, что количество в процессе работы может поменяться (сторонняя транзакция завершилась и в выборку добавляется строка).
|
|