问题如下,新建一个win32 dynamic -link library 
在stdafx.h中导入#import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")在任意函数中加入连接数据库代码。首先测试连接SQL SERVER 2000
CoInitialize(NULL);
_ConnectionPtr conn;
conn.CreateInstance(__uuidof(Connection));
try{
conn->Open("Driver={SQL SERVER};Server=TANG;Uid=sa;PWD=;DataBase=membership","","",-1);
}
catch(_com_error & e)  
{
MessageBox(NULL,"",e.ErrorMessage(),MB_OK);
    }
CoUninitialize();
一切正常,在准备连接sybase
将上面代码的连接字符串修改, CoInitialize(NULL);
_ConnectionPtr conn;
conn.CreateInstance(__uuidof(Connection));
try{
conn->Open("Driver={SYBASE SYSTEM 11};Srvr=db-server;Uid=sa;Pwd=;","","",-1);
}
catch(_com_error & e)  
{
MessageBox(NULL,"",e.ErrorMessage(),MB_OK);
    }
CoUninitialize();准备连接sybase,调试时,发现在open时,停在
Loaded 'C:\Sybase\dll\nldecnet.dll', no matching symbolic information found.
Loaded 'C:\Sybase\dll\nlnwlink.dll', no matching symbolic information found.
Loaded 'C:\WINNT\system32\mswsock.dll', no matching symbolic information found.
不走了。
于是又在ODBC中建立一个数据源
连接改为conn->Open("Provider=MSDASQL.1;DSN=dsn1;UID=sa;PWD=","","",-1);
问题依旧用Sybase\bin\dsedit.exe测试一切正常
于是建立一个MFC对话框程序测试,同样在stdafx.h中加入#import "C:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")在初始化中加入与上面相同的代码连接sybase 一切正常(无论用数据源还是远程连接)。问题出现了,如何在win32 Dynamic-link library 中正常连接sybase?

解决方案 »

  1.   

    Loaded 'C:\Sybase\dll\nldecnet.dll', no matching symbolic information found.
    Loaded 'C:\Sybase\dll\nlnwlink.dll', no matching symbolic information found.是不是你这两个DLL的版本有问题??
      

  2.   

    应当不会,我安装的是sybase1192CLIENT如果是的话,应当装哪一个版本?
      

  3.   

    你的客户端应该与服务器版本一致。
    Loaded 'C:\Sybase\dll\nldecnet.dll', no matching symbolic information found.
    Loaded 'C:\Sybase\dll\nlnwlink.dll', no matching symbolic information found.这本身只是说其间不包含调试信息而已。
      

  4.   

    版本是一样的,我贴出来只是想,为什么代码停在那了?
    而且,用MFC对话框连接一切正常呀。
      

  5.   

    把你的import改为下面试试,
    #pragma warning(disable:4146)
    #import "C:\Program Files\Common Files\System\ADO\msado15.dll" named_guids rename("EOF","adoEOF"), rename("BOF","adoBOF")
    #pragma warning(default:4146)
    using namespace ADODB; 
      

  6.   

    你的程序就只有这三个LOAD错误吗?
    Loaded 'xxxx.DLL', no matching symbolic information found. 是装入xxxx.dll动态库,但没有找到与其匹配的符号信息。他一般是在DEBUG的时候出现的!
      

  7.   

    不是的,我只是把最后三个给贴出来了。
    不是出错误,而是LOAD这三个DLL时就停在那了。按F10没有反应,其它一切正常.
      

  8.   

    你是在什么版下调试的程序,应该要在DEBUG下
      

  9.   

    用DB-Library或是CT-Library来写吧