解决方案 »

  1.   

    这里有个示例http://www.rupeng.com/forum/thread-1403-1-3.htmlvoid DBTest(HWND hwnd)
    {
        SQLHENV henv = NULL;
        SQLHDBC hdbc = NULL;
        SQLHSTMT hstmt = NULL;
        SQLRETURN result;
        SQLCHAR ConnStrIn[MAXBUFLEN] = "DRIVER={MySQL ODBC 5.1 Driver};SERVER=127.0.0.1;UID=root;PWD=root;DATABASE=test;CharSet=gbk;";
        SQLCHAR ConnStrOut[MAXBUFLEN];
    //分配环境句柄
        result = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &henv);
    //设置管理环境属性
        result = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0);
    //分配连接句柄
        result = SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc);
    //设置连接属性
        result = SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (void*)LOGIN_TIMEOUT, 0);
    //连接数据库
        result = SQLDriverConnect(hdbc,NULL,
                                  ConnStrIn,SQL_NTS,
                                  ConnStrOut,MAXBUFLEN,
                                  (SQLSMALLINT *)0,SQL_DRIVER_NOPROMPT);
        if(SQL_ERROR==result)
        {
           ShowDBConnError(hwnd,hdbc);
           return;
        }
    //初始化语句句柄
        result = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
        //SQL_NTS telling the function the previous parameter is Null-Terminated String,
    //please alculate the string length for me   
    result = SQLPrepare(hstmt,(SQLCHAR*)"insert into T_Person(FAge,FName) values(20,'kider')",SQL_NTS);
    CHECKDBSTMTERROR(hwnd,result,hstmt);
        result =SQLExecute(hstmt);
        CHECKDBSTMTERROR(hwnd,result,hstmt);
    SQLFreeStmt(hstmt,SQL_CLOSE);
        SQLDisconnect(hdbc);
        SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
        SQLFreeHandle(SQL_HANDLE_ENV,henv);
    MessageBox(hwnd,TEXT("执行成功"),TEXT("标题"),MB_OK);
    }
      

  2.   

    用ADO方便些,ADO本身是一个OLE DB Consumer,OLE DB在两个方面对ODBC进行了扩展。