本文共 2145 字,大约阅读时间需要 7 分钟。
2013年12月12日11:12:35
今天,学习在Linux下访问SQL Server。连接成功了,但执行SQL语句一直失败。原来要选择数据库。我接手的程序有这一段代码。尊重经验。
下面贴一下代码:
//SQL执行信息获取函数int lww_msg_handler(DBPROCESS *dbproc, DBINT msgno, int msgstate, int severity, char *msgtext, char *srvname, char *procname, int line){ printf("lww_msg_handler!!\n"); printf("SQLERR: Msg %ld, Level %d, State %d, msg %s\n",(long) msgno, severity, msgstate,msgtext); return 0; }//SQL错误获取函数int lww_err_handler(DBPROCESS * dbproc, int severity, int dberr, int oserr,char *dberrstr, char *oserrstr){ printf("lww_err_handler!!\n"); printf ("DB-Library Error %i: %s\n", dberr, dberrstr); return (INT_CANCEL); //return 0;}
int main(int argc ,char **argv){printf("hello world!!\n"); // Install user-supplied error- and message-handling functions. dberrhandle(lww_err_handler); dbmsghandle(lww_msg_handler); // Initialize DB-Library. if(dbinit()==NULL) { printf("dbinit 失败!!\n"); return 0; } printf("dbinit 成功!!\n"); LOGINREC * login; // The login information. login = dblogin (); if(login==NULL) { printf("dblogin 失败!!\n"); return 0; } printf("dblogin 成功!!\n"); DBSETLUSER(login,"sa"); DBSETLPWD(login,"123"); DBSETLAPP(login,"lwwDatabase"); DBPROCESS * dbproc; // The connection with SQL Server. dbproc = dbopen (login, "192.168.4.186"); if(dbproc==NULL) { printf("dbopen 失败!!\n"); return 0; } printf("dbopen 成功!!\n"); dbcmd(dbproc,"use lwwDatabase"); dbsqlexec(dbproc); //dbcmd (dbproc, "SELECT Point1ID, Point2ID FROM LineTable WHERE LineID=2"); dbcmd (dbproc, "SELECT * FROM LineTable"); // Send the command to SQL Server and start execution. RETCODE ret; ret=dbsqlexec (dbproc); if(ret==FAIL) { printf("dbsqlexec 失败!!\n"); dbexit(); return 0; } printf("dbsqlexec 成功!!\n"); while ((result_SExitState = dbresults(dbproc)) != NO_MORE_RESULTS) { if (result_SExitState == SUCCEED) { int point1ID=-1;int point2ID=-1; dbbind(dbproc,2,INTBIND,(DBINT)0,(BYTE *)&point1ID); dbbind(dbproc,3,INTBIND,(DBINT)0,(BYTE *)&point2ID); while (dbnextrow(dbproc) != NO_MORE_ROWS) { printf("point1ID:%d,point2ID:%d.\n",point1ID,point2ID); } } } dbclose(dbproc); dbexit(); printf("退出程序!!\n"); return 0;}
转载地址:http://ycwci.baihongyu.com/