我用SQLExecDirect()执行以下的语句,但是失败了char* sql;
HDBC hdbc;
HSTMT FAR *phstmt;
phstmt =(HSTMT FAR *)malloc(sizeof(HSTMT FAR));
sql=(char*)malloc(200);
sql="insert into table(num,name,sysdate)values(12345,'jeah',getdate())";
SQLAllocStmt(hdbc,phstmt);
rc=SQLExecDirect(*phstmt,(UCHAR FAR*)SQL,SQL_NTS);结果记录没插进去,rc返回的是执行失败的信息,请问还缺点什么,还有别的执行插入
或执行SQL语句的函数吗?

解决方案 »

  1.   

    HENV henv=NULL;
    HDBC hdbc=NULL;
    HSTMT hstmt=NULL;
    CString sql;
    sql="insert into table(num,name,sysdate) values(12345,'jeah',getdate())";//你自
                                                                    己保证语句的正确
    SQLAllocHandle(SQL_HENV_NULL,NULL,&henv);
    SQLSetAttr//忘了,自己查msdn
    SQLAllocHandle(SQL_HDBC_NULL,henv,&hdbc);
    SQLConnect//同上 :)
    SQLAllocHandle(SQL_HDBC_NULL,hdbc,&hstmt);SQLExecDirect(hstmt,sql,SQL_NTS);或用
    SQLPrepare(hstmt,sql,SQL_NTS);
    SQLExecute(hstmt);//具体参考msdn
      

  2.   

    唉,我知道原因出在哪了,应该是数据库没连接上,我用以下了函数,代码如下:char sourcename[20],username[10],password[10];
    strcpy(sourcename,"source");
    strcpy(username,"sa");
    strcpy(password,"1111");
    SQLAllocEnv(&henv);
    SQLAllocConnect(henv,&hdbc);
    SQLConnect(hdbc,(UCHAR*)sourcename,SQL_NTS,(UCHAR*)username,SQL_NTS,(UCHAR*)password,SQL_NTS);最后一句执行失败,请问这是什么原因,SQLConnect中sourcename,username,password三个
    参数怎么设定,我用“source”“sa”“1111”在ODBC中连接数据源的时候是对的,可在这里却没连接上,以上错误出在哪呢?