返回信息流用的是SQL Native Client中的ODBC编程,以release方式可以通过编译并运行,但连接数据库时错误,不知什么原因?
由于是刚学习VS2008环境下编程,很多都是凑起来的,大家帮忙吧
程序如下:
// ODBCTest.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <windows.h>
#include <sql.h>
#include <sqlext.h>
#include <sqlncli.h>
#include < iostream >
#include < stdlib.h >
#include < vcclr.h >
using namespace std;
//using namespace cli;
int _tmain(int argc, _TCHAR* argv[])
{
SQLRETURN r;
SQLHANDLE phenv, phdbc;
r = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &phenv);
// This is an ODBC v3 application
r = SQLSetEnvAttr(phenv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER) SQL_OV_ODBC3, 0);
if (r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) {
cout < <"connect Database succeed" < <endl;
}
// Choose one of the following to test with or without connection pooling
// r = SQLSetEnvAttr(henv, SQL_ATTR_CONNECTION_POOLING, (SQLPOINTER) SQL_CP_ONE_PER_DRIVER, 0);
r = SQLSetEnvAttr(phenv, SQL_ATTR_CONNECTION_POOLING, (SQLPOINTER) SQL_CP_OFF, 0);
if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO) {
cout < <"set envy st tr error!" < <endl;
exit(-1);
}
cout < <"set env attr succeed!" < <endl;
r = SQLAllocHandle(SQL_HANDLE_DBC, phenv, &phdbc);
r = SQLSetConnectAttr(phdbc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER) SQL_AUTOCOMMIT_OFF, SQL_IS_INTEGER);
if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO) {
cout < <"set connect attr error!" < <endl;
exit(-1);
}
cout < <"set connect attr succeed!" < <endl;
char* szConnStrIn="Driver={SQL Server Native Client 10.0};Server=127.0.0.1\\BUPT;Database=test;Integrated Security=True;";
cout < <szConnStrIn < <endl;
r = SQLDriverConnect(phdbc,
NULL,
(SQLWCHAR*)szConnStrIn,
SQL_NTS,
NULL,
0,
NULL,
SQL_DRIVER_NOPROMPT);
//r=SQLConnect(phdbc,);
if (r != SQL_SUCCESS && r != SQL_SUCCESS_WITH_INFO) {
cout < <"连接失败!" < <endl;
return -1;
}
cout < <r < <endl;
return 0;
}
这是一条镜像帖。来源:北邮人论坛 / database / #3336同步于 2009/5/4
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
求助:双机热备,实现故障自动迁移的程序
zilong831026
2009/5/4镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复