我想通过ADO连接postgre数据库,用了以下方法连接本地名为myDatabase的数据库。CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command));
pConn->ConnectionString = _T("Provider=MSDASQL.1;Password=123456;Persist Security Info=True;User Id=postgres;Initial Catalog=myDatabase;Data Source=127.0.0.1");
pConn->ConnectionTimeout = 300000;
pConn->Open(_T(""),_T(""),_T(""),adConnectUnspecified);可是在pConn->Open(_T(""),_T(""),_T(""),adConnectUnspecified);时程序崩溃了。请问如何才能连接postgre数据库?(不用ODBC)

解决方案 »

  1.   

    Provider=MSDASQL.1这个对吗?不清楚你这个库应该是哪种类型的驱动。
      

  2.   

    那你用这个方法先测试一下,看能不能连上数据库 
    新建一个空白txt 文件,然后将后缀名.txt改为 udl, 双击该文件,在弹出的对话框里,“提供程序”里面选择 “microsoft OLE DB provider for sql server”,接下来设置连接属性,点击"测试连接",如果测试通过后,把“保存密码”复选框选中,点击"确定"退出, 最后用记事本打开这个文件,里面记录的就是连接字符串
      

  3.   

    LZ应该用的是SQL SERVER吧,代码上没看出有啥问题啊
      

  4.   

    晕!Provider=MSDASQL.1是制定用SQL SERVER数据库的。
    要连Postgre数据库的话,应该用:
    Provider=PostgreSQL OLE DB Provider;lg:_bstr_t strConnect = "Provider=PostgreSQL OLE DB Provider;Data Source=myServerAddress;location=myDataBase;User ID=myUsername;password=myPassword;"; 结贴吧,楼主
      

  5.   

    找到一个帖子,估计有些细节楼主也会遇到:
    http://topic.csdn.net/u/20090514/09/64a48b24-ed31-4ed5-b82e-f15940a5a4ff.html
      

  6.   

    不写try,崩溃了都不知道为啥~
      

  7.   

    Provider=PostgreSQL OLE DB Provider
      

  8.   

    http://blog.csdn.net/zyq5945/archive/2009/08/06/4417201.aspx
    在提供程序中选择你的数据库驱动程序,在连接中选择测试连接下就知道了.