连接字符串按照如下设置。 相关部分,如Driver,SRVR,UID,PWD请按照实际情况设置。Provider=MSDASQL.1;Driver={Sybase System 11};SRVR=server;DB=data;UID=sa;PWD=dqwe这样就不用设置ODBC数据源了。
_bstr_t conn="Provider=MSDASQL.1;Password=sql;Persist Security Info=True;User ID=dba;Extended Properties='UID=dba;PWD=sql;Start=c:\\Program Files\\Sybase\\Adaptive Server Anywhere 6.0\\win32\\dbeng6.exe -c 8m;DatabaseFile=.\\DATA\\Office.db;AutoStop=Yes;Integrated=No;Driver={Adaptive Server Anywhere 6.0}'";
可看一下OLDEB,不需要设定数据源的,ADO也可
////////////////////////////////////////////////////////////////// 连接字符串按照如下设置。 相关部分,如Driver,SRVR,UID,PWD请按照实际情况设置。Provider=MSDASQL.1;Driver={Sybase System 11};SRVR=server;DB=data;UID=sa;PWD=dqwe这样就不用设置ODBC数据源了。 /////////////////////////////////////////OK,可以连上了,但是每次连之前,总是跳出一个对话框,上面有四个项: server name login id password database 其实,这些值我都在连接字符串上写好了,为什么还要出来这个对话框?有什么办法不要这个对话框出来吗?
aben456(风轻扬)好了,对话框消掉了。不知道oracle连接字符串怎么设?我设的方式如下:MyDb.OpenEx("ODBC;Provider=MSDASQL.1;Driver={Microsoft ODBC for Oracle};SERVER=YANGZHT;UID=system;PWD=manager;",CDatabase::noOdbcDialog)但总是报错。
相关部分,如Driver,SRVR,UID,PWD请按照实际情况设置。Provider=MSDASQL.1;Driver={Sybase System 11};SRVR=server;DB=data;UID=sa;PWD=dqwe这样就不用设置ODBC数据源了。
连接字符串按照如下设置。
相关部分,如Driver,SRVR,UID,PWD请按照实际情况设置。Provider=MSDASQL.1;Driver={Sybase System 11};SRVR=server;DB=data;UID=sa;PWD=dqwe这样就不用设置ODBC数据源了。
/////////////////////////////////////////OK,可以连上了,但是每次连之前,总是跳出一个对话框,上面有四个项:
server name
login id
password
database
其实,这些值我都在连接字符串上写好了,为什么还要出来这个对话框?有什么办法不要这个对话框出来吗?
类CDatabased 的 open()函数
你先用记事本建立个文件,然后另存为*.udl 然后双击这个文件,在里面设置参数,然后再用记事本打开这个 udl 文件,拷贝里面的连接字符串就可以了,以前我都是用这样子的办法来生成连接字符串的。 这可是个通用的办法哦,别忘记分点分哦,哈哈………… :)
我采用ADO,
1.连接字符串
2.udl文件
绝对GOOD!
但我的连接是要求没有数据源的是不是使用ODBC访问,一定会出现那个对话框的?
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=MSDASQL.1;Driver={Sybase System 11};SRVR=YANGZHITAO;DB=master;UID=sa;","","",adModeUnknown);///连接数据库
m_pConnection->Close();///关闭连接
AfxMessageBox("OK! Successe to open Database.");///显示错误信息 }
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
对了,上述连接字符串中,当我用IP代替SERVER中的值时,也是说 不支持此接口,是什么问题?
{
AfxMessageBox("数据库打开失败");
return FALSE;
}
可以消掉对话框
"不支持此接口"在openEx()下
"驱动程序的SQLSetConnectAttr失败
非法的连接串属性"
ADO连接字串里就不要写ODBC了,2者是不同的连接方式,
连接远程的数据库一般要指定对方IP和端口,或者在本地建立远程数据库的DSN。