13.02.2003, 13:39 | #13 |
Участник
|
2 Андре
Пример использования COM Axapta из другого приложения (например Fox, Delphi, C++). 2 KSS На данный момент у меня два варианта и они мне не нравятся, т.к. сильно не похожи на то, что я себе представлял.. /* курсор = execQuery("select *")' while (курсор.Next()) { курсор.Поле1 = ...; курсор.Поле2 = ...; ... курсор.ПолеN = ...; курсор.Update(); } курсор.Close(); */ Вот они... Вариант 1 void clicked() { CCADOConnection cn = new CCADOConnection() ; CCADOCommand command = new CCADOCommand() ; CCADORecordset rs = new CCADORecordset() ; str _str = "" ; str filename ; int pos ; FileNameFilter filter ; int i ; int timeStamp ; ; 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); if (cn) { _str = "delete from "+SubStr(StrUpr(filename),pos,StrLen(StrUpr(filename))); command.commandText(_str); command.execute(); i = 0; timeStamp = timeNow(); while (i < 1000) { _str = "insert into "+SubStr(StrUpr(filename),pos,StrLen(StrUpr(filename)))+" (pach) values ("+int2str(i)+")"; command.commandText(_str); command.execute(); i++; } info(strFmt('Время выполнения операции insert: %1', time2str(timeNow() - timeStamp,1,1))); timeStamp = timeNow(); i = 0; while (i < 1000) { _str = "update "+SubStr(StrUpr(filename),pos,StrLen(StrUpr(filename)))+" set an_kr = "+int2str(i)+"0 where pach = "+int2str(i); command.commandText(_str); command.execute(); i++; } info(strFmt('Время выполнения операции update: %1', time2str(timeNow() - timeStamp,1,1))); timeStamp = timeNow(); rs.close(); } } Вариант 2 void clicked() { OdbcConnection connection ; LoginProperty LP = new LoginProperty() ; Statement stm ; ResultSet res ; str stmTxt ; int timeStamp ; int i ; ; super(); LP.setDSN("DBF"); connection = new OdbcConnection(LP); stm = connection.createStatement(); if (connection) { stmTxt = "delete from ob23.dbf"; stm.executeUpdate(stmTxt); i = 0; timeStamp = timeNow(); while (i < 1000) { stmTxt = "insert into ob23.dbf (pach) values ("+int2str(i)+")"; stm.executeUpdate(stmTxt); i++; } info(strFmt('Время выполнения операции insert: %1', time2str(timeNow() - timeStamp,1,1))); timeStamp = timeNow(); i = 0; while (i < 1000) { stmTxt = "update ob23.dbf set an_kr = "+int2str(i)+"0 where pach = "+int2str(i); stm.executeUpdate(stmTxt); i++; } info(strFmt('Время выполнения операции update: %1', time2str(timeNow() - timeStamp,1,1))); timeStamp = timeNow(); } } |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Экспорт в DBF количество символов. | 1 | |||
почти DBF | 3 | |||
Как создать DBF...? | 11 | |||
Импорт из DBF : кириллица | 8 | |||
Достать данные из DBF в форму | 29 |
|