访问部分代码如下:
_bstr_t strConnect="Provider=MS Remote;Remote Server=server;Remote Provider=SQLOLEDB;\
Network Library=DBMSSOCN;Data Source=server;Initial Catalog=office;User ID=hwalee;Password=;"; HRESULT hr;
try
{
// 打开远端office库
hr = m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr)){
hr = m_pConnection->Open(strConnect,"","",adConnectUnspecified);
}
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
return FALSE;
}
try
{
if(SUCCEEDED(hr)){
hr = m_pRecordset.CreateInstance("ADODB.Recordset");
if(SUCCEEDED(hr)){
m_pRecordset->Open("SELECT * FROM xfmxb",// 查询DemoTable表中所有字段
_variant_t((IDispatch *)m_pConnection,true), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
}
}
catch(_com_error e)
{
AfxMessageBox("查询数据失败!");
return false;
}
查询一分多钟就报错。用的远程数据库,连接是成功的。
_bstr_t strConnect="Provider=MS Remote;Remote Server=server;Remote Provider=SQLOLEDB;\
Network Library=DBMSSOCN;Data Source=server;Initial Catalog=office;User ID=hwalee;Password=;"; HRESULT hr;
try
{
// 打开远端office库
hr = m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr)){
hr = m_pConnection->Open(strConnect,"","",adConnectUnspecified);
}
}
catch(_com_error e)
{
AfxMessageBox("数据库连接失败!");
return FALSE;
}
try
{
if(SUCCEEDED(hr)){
hr = m_pRecordset.CreateInstance("ADODB.Recordset");
if(SUCCEEDED(hr)){
m_pRecordset->Open("SELECT * FROM xfmxb",// 查询DemoTable表中所有字段
_variant_t((IDispatch *)m_pConnection,true), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
}
}
catch(_com_error e)
{
AfxMessageBox("查询数据失败!");
return false;
}
查询一分多钟就报错。用的远程数据库,连接是成功的。
解决方案 »
- 关于线程的问题,求教
- 如何获取Tree选中项的文本
- InsertColumn()为什么没有起作用呢?
- 非模式对话框的信息传递
- 请教:如何将1000个.txt文件合成一个.txt文件?
- 请问如何指定工程的编译(CL.exe)参数使用/MLd而不是使用/MDd?(能帮我解决的给满分)
- listbox小问题一个~~~~~~~~~~waiting........
- 在线等待,构造IP数据包的疑问
- 求VC控制word的例子,代码.
- PostThreadMessage失败,GetLastError返回6。
- 怎么做一个象3721一样的浏览到该网页就提示下载安装的功能
- 如何实现类似Word里面那样的字数统计功能?
m_pRecordset->PutRefActiveConnection(m_pConnection);
#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);