Показать сообщение отдельно
Старый 13.02.2003, 07:49   #4  
edd is offline
edd
Участник
 
81 / 10 (1) +
Регистрация: 20.01.2003
сам допер
видимо курсор возвращается только при селекте, а при Insert, Delete нет, вот версия без ошибок

void clicked()
{
CCADOConnection cn = new CCADOConnection() ;
CCADOCommand command = new CCADOCommand() ;
CCADORecordset rs = new CCADORecordset() ;
COM RecordSet ;
str _str = "" ;
str filename ;
int pos ;
FileNameFilter filter ;
int i ;
;
super();

filter = ['DBF files','*.dbf'];
filename = Winapi::getOpenFileName(element.hWnd(),filter,'','', '','');
pos = StrScan(StrUpr(filename),"OB23",1,255);
_str = SubStr(StrUpr(filename),1,pos-1);

cn = new CCADOConnection();
cn.open("Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq="+_str+";");
command.activeConnection(cn);
_str = "select * from "+SubStr(StrUpr(filename),pos,StrLen(StrUpr(filename)));
command.commandText(_str);

if (cn)
{
rs = command.execute();


_str = "delete from "+SubStr(StrUpr(filename),pos,StrLen(StrUpr(filename)));
command.commandText(_str);
command.execute();
i = 0;
while (i < 10)
{
_str = "insert into "+SubStr(StrUpr(filename),pos,StrLen(StrUpr(filename)))+" (pach) values ("+int2str(i)+")";
command.commandText(_str);
command.execute();
i++;
}

_str = "select * from "+SubStr(StrUpr(filename),pos,StrLen(StrUpr(filename)));
command.commandText(_str);
command.execute();

while (!rs.EOF())
{
RecordSet = rs.recordSet();
rs.moveNext();
}
rs.close();
}
}