我定义的一个cstring类的对象,在字符串类中填写了如下内容
str="provitor=SLQOLEDB;data resource=主机名;user id=sa;password=……";
在连接的过程中,总是提示我用户名登陆错误,我想知道在数据源中,由于我用的是局域网内数据库服务器上的数据源,我应该在这里填写的子网内服务器的机器名还是其他的什么内容呢?谢谢
str="provitor=SLQOLEDB;data resource=主机名;user id=sa;password=……";
在连接的过程中,总是提示我用户名登陆错误,我想知道在数据源中,由于我用的是局域网内数据库服务器上的数据源,我应该在这里填写的子网内服务器的机器名还是其他的什么内容呢?谢谢
//连接SQL SERVER
m_pConnection->Open("Driver=SQL Server;Database=test;Server=192.168.0.1;UID=sa;PWD=;","","",adModeUnknown);
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2。app文件的InitInstance中加入
if(S_OK!=OleInitialize(NULL))
{
AfxMessageBox("初始化COM组件库错误");
}
下面就是数据库操作
_ConnectionPtr pConn;
_RecordsetPtr pRs;
CString strSQL;
pConn.CreateInstance(__uuidof(Connection));
pConn->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
pConn->Open(_bstr_t(strSQL),"","",-1);pRs.CreateInstance(__uuidof(Recordset));
pRs->CursorLocation=adUseClient;
pRs->PutActiveConnection(pConn.GetInterfacePtr());pRs1.CreateInstance(__uuidof(Recordset));
pRs1->CursorLocation=adUseClient;
pRs1->PutActiveConnection(pConn.GetInterfacePtr());strSQL="select * from catalog order by cataid";
pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
Provider=SQLOLEDB.1;Data Source= TESTPC;User ID=sa;Password=sa;Initial Catalog=fjlz;Persist Security Info=True
其中Data Source为服务器名称
Catalog为数据库名称
CString m_sConn="Provider=Microsoft.Jet.OLEDB.4.0.1;Data Source=d:\\db1.mdb";
m_pConn.CreateInstance("ADODB.Connection");
try
{
HRESULT hr=m_pConn->Open((_bstr_t)m_sConn,"","",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能连接数据库 error!");
return FALSE;
}2.SQL Server 2000 _ConnectionPtr m_pConn;
CString m_sConn="Provider=SQLOLEDB.1;Data Source=192.168.3.9;Initial
Catalog=sode"; //sode是数据库服务器192.168.3.9上的一个数据库
m_pConn.CreateInstance("ADODB.Connection");
try
{
HRESULT hr=m_pConn->Open((_bstr_t)m_sConn,"sa","mapper",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能连接数据库 error!");
return FALSE;
}3.Oracle 9i _ConnectionPtr m_pConn;
CString m_sConn="Provider=MSDAORA.1;Data Source=sode_192.168.3.9"; //使用
ms连接库,sode为SID,192.168.3.9为机器ip
m_pConn.CreateInstance("ADODB.Connection");
try
{
HRESULT hr=m_pConn->Open((_bstr_t)m_sConn,"sodeUser","sodePw",adConnectUnspecified);
if (FAILED(hr))
{
AfxMessageBox("不能连接数据库 source!");
return FALSE;
}
}
catch(_com_error e)
{
AfxMessageBox("不能打开数据库 error!");
return FALSE;
}
在一个对话框程序中,右键点击对话框,在弹出的菜单中选择“insert Active Control”,在弹出的窗口中选择Microsoft ADO Dataa Control 6.0(SP6),点击ok,会在你的对话框上添加一个控件,右键点击控件,选择属性,在属性设置对话框上选择Control,选择“Use Connection String”,点击Build
再选择你的数据库类型(如Sql server)。。最后就可以生成一个连接字符串
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=iCARD;Data Source=10.10.4.15这就是你要的!
如果楼主决定好用的话,多给写分,帮助我成为星星!
:)
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2。app文件的InitInstance中加入
if(S_OK!=OleInitialize(NULL))
{
AfxMessageBox("初始化COM组件库错误");
}
下面就是数据库操作
_ConnectionPtr pConn;
_RecordsetPtr pRs;
CString strSQL;
pConn.CreateInstance(__uuidof(Connection));
pConn->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
pConn->Open(_bstr_t(strSQL),"","",-1);pRs.CreateInstance(__uuidof(Recordset));
pRs->CursorLocation=adUseClient;
pRs->PutActiveConnection(pConn.GetInterfacePtr());pRs1.CreateInstance(__uuidof(Recordset));
pRs1->CursorLocation=adUseClient;
pRs1->PutActiveConnection(pConn.GetInterfacePtr());strSQL="select * from catalog order by cataid";
pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);
在连接的时候我用的是_ConnectionPtr 作为接口指针
可是,使用whwjn和 vcleaner推荐的字符串作为登陆信息,都不成功。
后来我把
strSQL="Provider=SQLOLEDB;data source=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
改成
strSQL="Provider=SQLOLEDB;SERVER=server;DATABASE=SkillsBox;UID=sa;PWD=aaaaaaaa";
就可以了。
这是不是和我用什么样的接口有关系呢?