Не работают методы Move элемента
msadodc
cias;
29.8.04
Проблема такая: в SCADA системе WinCC использую элемент управления
adodc.
ADODC подключается к mysql через odbc драйвер (для UserArchive
ситуация аналогична).
После выполнения sql-запроса, пытаюсь просмотреть результат,
последовательно в цикле проходя по набору записей. При этом
adodc.recordset.fields(2).value возвращает результат первой строки
в наборе, хотя после него стоит метод
adodc.recordset.movenext().
Метод RecordCount выдает результат в 31 запись (и это верно).
Может чего нехватает в настройках элемента управления, но при
использовании в приложении на VB все тоже самое работает(все
настройки контрола).
Заранее благодарен за помощь.
а код вот такой
cias;
30.8.04
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName)
{
#define GetObjectA GetObject
long i=0;
long j=0;
__object *obj = NULL, *pic = NULL, *ado=NULL;
obj= __object_create("PDLRuntime");
if(!obj)
{
printf("obj = NULL\r\n");
return;
}
pic = obj->GetPicture("Test");
if( pic == NULL){
__object_delete(obj);
printf("pic != NULL\r\n");
return;
}
ado=pic->GetObject("Control1");
if( ado == NULL){
printf("ado = NULL\r\n");
__object_delete(obj);
__object_delete(pic);
return;
}
ado->ConnectionString="DSN=my_office";
ado->RecordSource="Select * from avto";
ado->Refresh();
if(ado->Recordset->BOF)
{
printf("\r\n Òàáëèöà ïóñòà");
}
else
{
printf("\r\n%d",ado->Recordset->RecordCount());//все путем
31
i=ado->Recordset->RecordCount();//i=31
while(j<i)
{
printf("\r\n%s",(char*)ado->Recordset->Fields(2)->Value);//Всегда
первая запись
printf(" %u",(long)ado->Recordset->Fields(0)->Value);
ado->Recordset->MoveNext();
j++;
}
}
__object_delete(obj);
__object_delete(pic);
__object_delete(ado);
}<<br>