powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Использование Ado.Command в всязке Adodb+vfpoledb
2 сообщений из 2, страница 1 из 1
Использование Ado.Command в всязке Adodb+vfpoledb
    #36610135
Dmitriy CoDy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работаю с базой в дбф файлах через Ado и vfpoledb провайдер.

Столкнулся с следующей проблемой:
выполнение некоторых команд через Ado.Command - объект возвращает ошибку.

Вот код:
$adoConn = new COM('ADODB.Connection');
$adoCmd = new COM('ADODB.Command');
$adoRs = new COM('ADODB.Recordset');

$adoConn->CursorLocation = 2;
$adoConn->Open(
'Data Source=c:/WebServers/home/dn_local/test/FoxPro/1C_db;'
. 'Provider=VFPOLEDB;'
. 'Mode=Read|Share Deny None;'
. 'ANSI=False;'
);

$adoRs->ActiveConnection = $adoConn;
$adoRs->CursorType = 3;
$adoRs->LockType = 1;
$adoRs->Open('
SELECT
PERIOD,
sp2092,
sp2090,
sp2091
FROM
RG2089
WHERE
DTOS(PERIOD)+sp2092+sp2090+sp2091 IN (
"20100201"
)
');

$adoCmd->ActiveConnection = $adoConn;
$adoCmd->CommandType = 1;
$adoCmd->CommandText = '
GOTO 5
';
$adoCmd->Execute();

Тут просто создается курсор на стороне сервера/провайдера и передвигается указатель текущей строки на 5-ую запись.
При выполнении команды "GOTO 5" вылазит ошибка:
"Произошла одна или несколько ошибок во время обработки команды"

Пытался писать:
GOTO 5 IN ALIAS();
или
SKIP 5 IN ALIAS();

Не подскажитн в чем причина?

Команды типа use table in 0 shared и вызовы функций, reccount() например, отрабанываю нормально.
...
Рейтинг: 0 / 0
Использование Ado.Command в всязке Adodb+vfpoledb
    #36611378
Zmej
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitriy CoDy,
авторНе подскажитн в чем причина?
А зачем Вам это нужно? Все что требуется для "ерзания", полученной в вашем примере выборки, есть у объекта рекордсет - методы Move, MoveNext...., коллекция полей Fields со значениями.
Насчет того почему:
$adoCmd->CommandText = 'GOTO 5';
не работает, а
$adoCmd->CommandText = 'EXECSCRIPT("GOTO 5")';
работает, этого я не знаю. Это может скажут "гуру".
Но, по-моему, лучше так не делать - ADODB рассчитан на несколько другой подход к манипулированию данными...
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Использование Ado.Command в всязке Adodb+vfpoledb
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]