问题1
我用ADO连接设了用户名密码的数据库
但是我发现我不输入 用户名和密码 都可以连接成功 而且还能把数据读出来
剪了一个名为test数据库   建了一个名为people的表 
见了一个 用户名1234  密码1234 的用户
我照着书上程序写的 大概是这样
 _ConnectionPtr pConnection;
   pConnection.CreateInstance(__uuidof(Connection));
   m_pConnection->Open("test;","","",adModeUnknown);
  后面是度数据
我奇怪,我明明设了用户名和密码为什么还能连接成功,而且还把数据读出来,默认用户  "管理员" 我也设了密码问题2
如果我把库名写错,程序直接出错终止
m_pConnection->Open("1111;","","",adModeUnknown);
我想不让程序终止,我想出现一个提示后,重新输入一个数据库名,应该怎么写?
if(pConnection->Open(_bstr_t(strConnect), "", "", adModeUnknown) != S_OK)  (我这样不行)

解决方案 »

  1.   

    你有没有建立test的ODBC联接数据源?
      

  2.   

    问题2
    把出错的地方TRYCATCH一下,出错之后重新处理
      

  3.   

    用绝对路径的话不用创建ODBC数据源吧。
    //用数据库文件的相对路径获取其物理路径
    CFile  file(L"sj.dat",CFile::modeRead);
    CString path = file.GetFilePath();
    file.Close();
    //创建数据库连接
    CoInitialize(NULL);
    _ConnectionPtr pConn(_uuidof(Connection));
    _RecordsetPtr pRst(__uuidof(Recordset)); 
    try{
    pConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+(_bstr_t)path,"DBusername","DBpassword",adConnectUnspecified);
    }catch (_com_error)
    {
    }
    CString sql("......");
    pRst->Open((_variant_t)sql, pConn.GetInterfacePtr(), adOpenStatic, adLockReadOnly, adCmdText); 
    //如果查询到结果
    if(!pRst->rsEOF)
    {
                    //do sth
                }
    //关闭数据库连接资源
    pRst->Close();
    pConn->Close();
    pRst.Release();
    pConn.Release();
    CoUninitialize();
    以前写的一小段ACCESS数据库查询代码。完全没问题的,因为楼主没有把代码都贴出来,所以自己对比下看看是哪里有问题。
      

  4.   

    对了,sj.dat 其实就是个 保存了手机归属地的access数据库。
      

  5.   

    ADO连接数据库不需要ODBC数据源吧
      

  6.   

    各位大侠帮帮忙,这个问题已经困扰好久了。网上的例子基本上都看过了还是解决不了
    代码在公司,上不了网 。  
     
    其实我就是想实现两个功能 
    1)建立一个数据库用户,登陆的时候必须知道用户名密码才能登陆,以前是在数据库中建一张表保存用户,密码,因为只要有2,3个用户就够了,我想直接建几个数据库用户,结果我发现,登陆时根本不用用户名,密码就能登陆。
    2)我想在出错后程序不终止,给一个提示后,继续运行。比如我把数库名字写错了,程序直接终止,try catch 根本没用。
      

  7.   

    用UDL文件配置access数据库问题
     
    用户名  1234密码1234我在提供程序中选择 Microsoft.Jet.4.0 OLE DB 这个驱动配置时  出现下面错误
    ---------------------------
    Microsoft 数据链接错误
    ---------------------------
    测试连接失败,因为初始化提供程序时发生错误。无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开 
    如果选择 microsoft ole db provider for odbc dirvers 根本不需要用户名 和密码就能连接成功