⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bulk_fetch.cpp

📁 SQLAPI C/C++ 连接Oracle 数据库!
💻 CPP
字号:
#include <stdio.h>  // for printf#include <time.h>  // for time#include <SQLAPI.h> // main SQLAPI++ headervoid CreateSampleData(SACommand &cmd, int nRows);int main(int argv, char *argc[]){    SAConnection con; // connection object    SACommand cmd(&con);        try    {        con.Connect(            "test",            "tester",            "tester", SA_Oracle_Client);                // Create and Insert test table        bool bCreateTable = false;	// set to true if you want to create sample data        if(bCreateTable)	// set to false when table is created and populated        {            CreateSampleData(cmd, 200000);            con.Commit();        }                time_t start, finish;                printf("Reading data without bulk support (default)...\n");        time(&start);        cmd.setCommandText("Select * from TEST_BULK");        cmd.Execute();        while(cmd.FetchNext())        {        }        time(&finish);        printf("Time in seconds: %g\n", difftime(finish, start));                int nBulkSize = 1000;        printf("Reading data with bulk support (Size=%d)...\n", nBulkSize);        SAString sBulkSize;        sBulkSize.Format("%d", nBulkSize);        time(&start);        cmd.setCommandText("Select * from TEST_BULK");        cmd.setOption("PreFetchRows") = sBulkSize;        cmd.Execute();        while(cmd.FetchNext())        {        }        time(&finish);        printf("Time in seconds: %g\n", difftime(finish, start));    }    catch(SAException &x)    {        try        {            // on error rollback changes            con.Rollback();        }        catch(SAException &)        {        }        // print error message        printf("%s\n", (const char*)x.ErrText());    }	return 0;}void CreateSampleData(SACommand &cmd, int nRows){    printf("Creating test table...\n");    cmd.setCommandText(        "CREATE TABLE TEST_BULK ("        "       FINTEGER             INTEGER NOT NULL,"        "       FVARCHAR20           VARCHAR(20),"        "       PRIMARY KEY (FINTEGER)"        ")");        cmd.Execute();    printf("Populating test table (rows=%d)...\n", nRows);    cmd.setCommandText(        "Insert into TEST_BULK (FINTEGER, FVARCHAR20) values (:1, :2)");        for(int i = 0; i < nRows; ++i)    {        SAString s;        s.Format("VC%d", i);        cmd << (long)i << s;        cmd.Execute();                if(((i+1) % 1000) == 0)            printf("%d rows inserted...\n", i+1);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -