VS2005用ADO调用excel的连接字串是什么,求准确的网上好多都是错的
解决方案 »
- 用VS2008在WIN7下写MFC崩溃了
- 关于MFC设置头文件
- MFC 信息 不耻下问。
- Cannot open include file: 'streambuf'
- 如何在CWnd中用CSplitterWnd分割窗口?
- 请教::HTTP怎么上传文件给服务器??
- 在分割窗口后,如何让每个窗口高度为整个窗口高度的一半?代码是...
- VC访问sybase数据库的问题,怎么就是连接失败?
- MFC虽然不能说是垃圾,但确实是很差劲的一个类库体系,我就尝尽之责磨,大家不要在学它了
- 关闭窗口的小问题
- VC中更改标签页控件(CTabCtrl)的背景颜色
- 请问VC中MFC里的tab控件会覆盖其他控件,看不见了还怎么设置相应的控件位置
头文件里类里:
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
_CommandPtr m_pCommand;CPP文件里:
BOOL CDatabaseDll::OpenDatabaseFun(_ConnectionPtr pConnection,_RecordsetPtr pRecordset,_CommandPtr pCommand)
{
BOOL Result=TRUE;
HRESULT hr;
try
{
hr = pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
pConnection->ConnectionTimeout = 10;
// hr = m_pConnection->Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\NW.mdb","", "", adModeUnknown);//这是OFFICE2003以下的
hr = pConnection->Open("Provider=Microsoft.Ace.Oledb.12.0;Data Source=D:\\bagayalu.accdb;Jet OLEDB:Database Password=123456","", "", adModeUnknown);//这是OFFICE2007以上的,包括OFFICE2010,这个连接字符串就是在OFFICE2010下用的,没问题
//m_pConnection->PutDefaultDatabase ((_bstr_t)"DB");//设置默认数据库
pCommand.CreateInstance(__uuidof(Command));
pCommand->CommandTimeout = 5;
pCommand->ActiveConnection = pConnection;
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!/r/n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
Result=FALSE;
return Result;
}
_variant_t var;
float v1,v2,v3,v4;
CString Re;
pRecordset.CreateInstance(__uuidof(Recordset));
try
{
pRecordset->Open("SELECT * FROM 表1",// 查询DemoTable表中所有字段
pConnection.GetInterfacePtr(),// 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("v1");
if(var.vt != VT_NULL)
v1=var.fltVal;
// strName = (LPCSTR)_bstr_t(var); var = m_pRecordset->GetCollect("v2");
if(var.vt != VT_NULL)
v2=var.fltVal;
var = m_pRecordset->GetCollect("v3");
if(var.vt != VT_NULL)
v3=var.fltVal;
var = m_pRecordset->GetCollect("v4");
if(var.vt != VT_NULL)
v4=var.fltVal;
var = m_pRecordset->GetCollect("re");
if(var.vt != VT_NULL)
Re = (LPCSTR)_bstr_t(var);
m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
Result=FALSE;
return Result;
}
return Result
整理了各种DB的connection string