对于数据库(如SYBASE),不设定数据源,如何连接到数据库?有例子吗?

解决方案 »

  1.   

    连接字符串按照如下设置。
    相关部分,如Driver,SRVR,UID,PWD请按照实际情况设置。Provider=MSDASQL.1;Driver={Sybase System 11};SRVR=server;DB=data;UID=sa;PWD=dqwe这样就不用设置ODBC数据源了。
      

  2.   

    _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}'";
      

  3.   

    可看一下OLDEB,不需要设定数据源的,ADO也可
      

  4.   

    //////////////////////////////////////////////////////////////////
    连接字符串按照如下设置。
    相关部分,如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
    其实,这些值我都在连接字符串上写好了,为什么还要出来这个对话框?有什么办法不要这个对话框出来吗?
      

  5.   

    对了,我的连接函数是:
    类CDatabased 的 open()函数
      

  6.   

    给你个简单的不得了的办法,哈哈……
    你先用记事本建立个文件,然后另存为*.udl  然后双击这个文件,在里面设置参数,然后再用记事本打开这个 udl 文件,拷贝里面的连接字符串就可以了,以前我都是用这样子的办法来生成连接字符串的。  这可是个通用的办法哦,别忘记分点分哦,哈哈………… :)
      

  7.   

    数据库连接方法很重要,如果你用ODBC的话那么别问了
    我采用ADO,
    1.连接字符串
    2.udl文件
    绝对GOOD!
      

  8.   

    udl文件设置时,好象需要数据源,
    但我的连接是要求没有数据源的是不是使用ODBC访问,一定会出现那个对话框的?
      

  9.   

    sql 可以用sdk 来做.网络通信就行吧...
      

  10.   

    OK!用ADO可以连上了(SYBASE),但是连不上ORACLE,在我连ORACLE时,总是说 不支持次接口,如何解决?以下是我连SYBASE的代码: _ConnectionPtr m_pConnection;
    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中的值时,也是说 不支持此接口,是什么问题?
      

  11.   

    if(!db.OpenEx(_T("DSN=db;UID=sa;PWD=abc"), CDatabase::noOdbcDialog ))
    {
    AfxMessageBox("数据库打开失败");
    return FALSE;
    }
    可以消掉对话框
      

  12.   

    aben456(风轻扬)好了,对话框消掉了。不知道oracle连接字符串怎么设?我设的方式如下:MyDb.OpenEx("ODBC;Provider=MSDASQL.1;Driver={Microsoft ODBC for Oracle};SERVER=YANGZHT;UID=system;PWD=manager;",CDatabase::noOdbcDialog)但总是报错。
      

  13.   

    报的错误信息是,在ADO下
    "不支持此接口"在openEx()下
    "驱动程序的SQLSetConnectAttr失败
    非法的连接串属性"
      

  14.   

    我又测了一下,ORACLE在ADO下,有时可以连的上,不知什么原因?
      

  15.   

    参考:http://lzygm.myrice.com/bianchenwenz/vc/vc015.htm
    ADO连接字串里就不要写ODBC了,2者是不同的连接方式,
    连接远程的数据库一般要指定对方IP和端口,或者在本地建立远程数据库的DSN。