[2013年12月12日]SQL Server 要明确选择使用哪个数据库

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值