使用ADO读取SQL数据库
static void UpdateInventTableFromUAT(Args _args)
{
SysOperationProgressEmbedded progress;
CCADOConnection connection;
str strSQL;
CCADOCommand Command;
CCADORecordSet RSet;
InventTable it;
#avifiles
SysOperationProgress simpleProgress;
int i,RecCount;
NJ_sInventTable NJ_sInventTable;
NJ_sItemId NJ_sItemId;
TextBuffer txtBuffer = new TextBuffer();
int j;
str txtfilePath;
container conFilter = ["Text Files(*.txt)", "*.txt"];
;
connection = new CCADOConnection();
Command = new CCADOCommand();
RSet = new CCADORecordSet();
connection.open("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=DEV;Data Source=EKT-TS10");
Command.activeConnection(connection);
strSQL = "select count(*) as RecCount from NJ_sInventTable";
Command.commandText(strSQL);
RSet = Command.execute();
RecCount = RSet.fields().itemName("RecCount").value();
simpleProgress = SysOperationProgress::newGeneral(#aviUpdate, 'Updating...', RecCount);
strSQL = "Select top 1000 * from NJ_sInventTable";
Command.commandText(strSQL);
RSet = Command.execute();
While (!RSet.EOF())
{
NJ_sItemId = RSet.fields().itemName("NJ_sItemId").value();
select NJ_sInventTable where NJ_sInventTable.NJ_sItemId == NJ_sItemId;
if (!NJ_sInventTable)
{
print NJ_sItemId;
txtBuffer.appendText(NJ_sItemId);
}
RSet.recordSet().movenext();
/*ttsbegin;
select forupdate it where it.ItemId == RSet.fields().itemName("ItemId").value();
it.NJ_MaterialType = RSet.fields().itemName("NJ_MaterialType").value();
it.update();
ttscommit;
*/
simpleProgress.incCount();
simpleprogress.setText(strfmt("Task: %1/%2", i,RecCount));
i++;
}
txtfilePath = Winapi::getSaveFileName(0, conFilter,"", "Specify SaveFile Name", "", "");
if(txtfilePath)
{
txtBuffer.toFile(txtfilePath);
}
RSet.close();
connection.close();
}