在VC中用ADO访问SQLserver数据库的简单问题

strSRC.Format("driver=SQL Server;Server=192.168.0.10;DATABASE=class;UID=sa;PWD=123");
hr=m_Con->Open((_bstr_t)strSRC,"","",adModeReadWrite);
Server=192.168.0.10//我是在一台局域网上的机子上做的,这是本机的IP.sql server 2000也装在本机上.server设置有没有问题?sql server 2000的服务器名要不要指定?我的服务器名是WWW-2849EF70041.
运行的时候出错,说是一个无效的指针.这个问题怎么解觉?
我用数据源也出现了无效指针的错误,我的定义如下:
strSRC.Format("Data Source=SQLDATA;UID=sa;PWD=123");
hr=m_Con->Open((_bstr_t)strSRC,"","",adModeReadWrite);
Data Source=SQLDATA//SQLDATA为我的数据源

我只做简单的连接数据库,进行操作数据,还要什么服务器,客户端吗?不能在程序直接连接SQL Server?我看了N多的例子都是直接进行这样的Open()设置,难道Open还分服务器和客户端?

首先
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
然后:
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象

if(SUCCEEDED(hr))
{
m_pConnection->ConnectionTimeout=2;///设置超时时间为2秒
//以下是连接access2000数据库。。。
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=lo.mdb;","","",adModeUnknown);
//连接SQL数据库
// m_pConnection->CursorLocation = adUseClient;
// m_pConnection->IsolationLevel = adXactReadCommitted;
// m_pConnection->Open("Provider=SQLOLEDB;Server=127.0.0.1;DATABASE=kgd;UID=sa;PWD=","","",adModeUnknown);

}
}
catch(_com_error e)///捕捉异常
{
CString temp;
temp.Format("连接数据库错误信息:%s",e.ErrorMessage());
::MessageBox(NULL,temp,"提示信息",NULL);
AfxMessageBox(e.Source());
AfxMessageBox(e.Description());
return false;
}

我是这样干的.很健康
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-25
你可以这么做,Server=192.168.0.10做服务器,你程序的机器做客户端,
程序里连接数据库使有这个m_pConnection->Open("File Name=dqs.udl","","",adConnectUnspecified);
在程序文件夹建个文本,起名叫dqs.udl,打开dqs.udl
在提供程序中选SQL ,在选择输入服务器名称里选Server=192.168.0.10的SQL SERVER 名,用户和密码应该是sa,然后再服务器上选数据库就可以了,最后测试连接,看是否连接上

我说的服务器和客户端都不是真的 ,只是这么说你在dqs.udl设置里好理解
第2个回答  2008-12-26
建议在同一台机子上先做好测试
相似回答