int mlen; 
char szDesc[256]; 
 
sprintf(szDesc,"DSN=FB: DBQ=%s","C:\\Goods.Sql"); 
 SQLConfigDataSource(NULL,ODBC_ADD_DSN,"SQL SERVER",(LPCSTR)szDesc); 
try 

m_db.Open(NULL,false,false,_T("ODBC;DSN=FB;UID = Goods; PWD = Goods"),false); 

catch(CDBException *e) 

AfxMessageBox("打不开数据库"); 
e->Delete(); 
exit(1); 

为数据库打不开!数据源新建的,是不是没有和数据库俩上呀,帮帮小弟拉

解决方案 »

  1.   

    我也不太明白这种做法。你加载了ODBC的驱动程序了吗?
      

  2.   

    如果手动添加了dsn久不需要SQLConfigDataSource这个函数了
    如果不是的话,这个函数用的好像不对,你可以到msdn上查一下
      

  3.   

    到底出啥错误啊?
    看一下数据源建立成功了吗?
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  4.   

    数据源是用SQLConfigDataSource建得呀,msdn我看过拉,不太明白,高手帮我看看拉,否者我就麻烦啦
      

  5.   

    catch (CDBException *e)
    {
    AfxMessageBox(e->m_strError);
    return FALSE;
    }
    再运行看看,看提示的错误是什么。
      

  6.   

    52001314(passenger) (  ) ,说未发现数据源并为指定默认数据源,是不是SQLConfigDataSource(NULL,ODBC_ADD_DSN,"SQL SERVER",(LPCSTR)szDesc); 
    错啦,该怎么写呀用户:zhang
    密码:112
      

  7.   

    sprintf(szDesc,"DSN=FB: DBQ=%s","C:\\Goods.Sql"); 
    DSN=FB;
    这儿好象应该用;而不是:
      

  8.   

    m_db.Open(NULL,false,false,_T("ODBC;DSN=FB;UID = Goods; PWD = Goods"),false); 你建了ODBC叫FB,userid=Goods,passwd=Goods了吗?
      

  9.   

    if (!SQLConfigDataSource(NULL,ODBC_ADD_DSN,"SQL SERVER",(LPCSTR)szDesc)) AfxMessageBox("error");看看你创建有没有成功。觉得这个函数用的好像不对。不然手动创建一个好了。在控制面板-〉管理工具-〉数据源(ODBC)
    中添加一个dsn,叫FB的,就是m_db.Open(..)中用到的。
      

  10.   

    52001314(passenger) 用SQLConfigDataSource创建可以么,我想程序创建呀,手工不太方便呀
      

  11.   

    int main()
    {
    RETCODE retcode; 
    char    *szDriver = "E:\\WINNT\\System32\\sqlsrv32.dll\0";//used for the ueser 
    char    *szAttributes =
    "DSN=psusong_DSN\0DESCRIPTION=Test user DSN sample\0"
    "SERVER=ypcpsu\\psusong\0"
    "LastUser=sa\0"
    "DATABASE=Database_ASP\0"; retcode = SQLConfigDataSource(NULL,
                                 ODBC_ADD_DSN,
                                 szDriver,
                                 szAttributes);
     cout<<retcode;
     return 0;
    }
      

  12.   

    #include <stdio.h>
    #include <windows.h>
    #include "sql.h"
    #include <odbcinst.h>int main()
    {
    RETCODE retcode; 
    char    *szDriver = "SQL Server";
    char    *szAttributes =
    "DSN=psusong_song\0DESCRIPTION=SQLConfigDSN Sample\0"
    "SERVER=ypcpsu\\psusong\0"
    "DATABASE=Database_ASP\0"; retcode = SQLConfigDataSource(NULL,
                                 ODBC_ADD_DSN,
                                 szDriver,
                                 szAttributes);
     cout<<retcode;
     return 0;
    }
    ----
    server为我的sql2000:ypcpsu\psusong
    database :Database_ASP
    szDriver = "SQL Server"//必须严格书写,中间只有一个空格
    建立数据源的默认的连接用户是Administrator
      

  13.   

    ("ODBC;DSN=FB;UID=Goods; PWD='Goods'"
      

  14.   

    psusong(我心飞扬) ,
    我也是sql2000:你那个ypcpsu是代表什么的
      

  15.   

    ypcpsu\psusong 是我的SQL Server 2000的实例名
    -----------------------------
    具体的原因是:我的本机名是ypcpsu,在安装server 2000时,我又指定了server 2000 的实例名:psusong,从而使得我的实例名变成:ypcpsu\psusong
    "SERVER=your_sqlserver_name\0"
    ------------------
    PS.
    函数参数中的字符是严格区分大小写的!
    当初我就是 写错了几个字符,怎么就业建立不成功!
    如果建立成功的话
    retcode = SQLConfigDataSource(NULL,
                                 ODBC_ADD_DSN,
                                 szDriver,
                                 szAttributes);
    返回值retcode=1
    否则 retcode=0
    --------------------------
    Good Luck!
    [email protected]
      

  16.   

    在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI中有相关数据源的信息,可以参考成功的数据源。验证的方法很多吗。