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;
}