使用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();

}

posted @ 2012-02-14 09:22  perock  阅读(574)  评论(0编辑  收藏  举报