VC6.0 MFC怎样读ODBC表的数据 我用VC6.0 MFC打开了ODBC的数据库,也读取了表名,怎样来读起表里的数据 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 str是赋的表名strSQL = ("SELECT * FROM ") + str; m_rs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL,CRecordset::readOnly);编译通过运行时报错,列没被绑定 str是赋的表名strSQL = ("SELECT * FROM ") + str; m_rs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL,CRecordset::readOnly);编译通过运行时报错,列没被绑定 一般我是recordset = connection去Execute(sql语句),然后返回结果。比如:m_rs = connection对象.Execute((_bstr_t)strSQL, ..., adCmdText); 我是用的ODBC连接的数据库,CRecordset m_rs;strSQL = ("SELECT * FROM ") + str; m_rs = m_db.ExecuteSQL((_bstr_t)strSQL);error C2582: 'CRecordset' : 'operator =' function is unavailableError executing cl.exe. 看看下面的代码可以参考不:_ConnectionPtr m_pConnection;_RecordsetPtr m_pRecordset;BOOL CWanGuanDialog::OnInitDialog(){ CDialog::OnInitDialog(); CString szPath; GetModuleFileName(NULL,szPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH); szPath.ReleaseBuffer (); int nPos; nPos = szPath.ReverseFind ('\\'); szPath = szPath.Left (nPos); szPath = szPath + "\\WanGuan"; CString szFile = szPath + "\\PSTAD2003.mdb"; CString szAtr; szAtr.Format(_T("DSN=PSTAD2003!DBQ=%s!DEFAULTDIR=%s!!"),szFile,szPath); int nlen; nlen = szAtr.GetLength(); for(int i = 0;i <nlen;i++) { if(szAtr.GetAt(i) == '!') szAtr.SetAt (i,'\0') ; } if (FALSE == SQLConfigDataSource(NULL, ODBC_ADD_DSN, _T("Microsoft Access Driver (*.mdb)\0"), (LPCWSTR)szAtr)) AfxMessageBox(_T("数据源配置失败,确认数据库PSTAD2003.mdb是否在当前路径下!")); AfxOleInit(); m_pConnection.CreateInstance(_uuidof(Connection)); m_pRecordset.CreateInstance(_uuidof(Recordset)); try { m_pConnection->Open("DSN=PSTAD2003","","",0);//连接数据库 } catch(_com_error e) { AfxMessageBox(_T("数据库连接失败,确认数据库PSTAD2003.mdb是否在当前路径下!")); return FALSE; } try { CString strSql=_T("select * from PSTAD2003"); m_pRecordset->Open((LPCTSTR)strSql,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText); } catch(_com_error *e) { AfxMessageBox(e->ErrorMessage()); } try { if(!m_pRecordset->BOF) m_pRecordset->MoveFirst(); else { AfxMessageBox(_T("表内数据为空")); return FALSE; } while(!m_pRecordset->AdoEOF) { _variant_t var = m_pRecordset->GetCollect("外径"); if(var.vt != VT_NULL) m_OD = (LPCSTR)_bstr_t(var); m_COMBO.AddString((LPCTSTR)m_OD); m_pRecordset->MoveNext(); } } catch(_com_error *e) { AfxMessageBox(e->ErrorMessage()); } return TRUE; // return TRUE unless you set the focus to a control} OpenGL 反走样问题 请问提示信息如何做啊? 为什么总有一些应答接收不到? [大师指路]一个用DLL 来实现动态连接的 COM 组件 是如何完成把组件信息添加到注册表里去的?? 怎么能把一个Document-View的执行程序代码改为一个OCX插件? changlele进来拿分 有人知道象有些程序有换肤功能 但是每一种皮肤的同一个控件的外观竟然是从同一个图象文件里的不同部分读出来的 是怎么实现的啊 如qq那样 请问谁有RTP协议的例子 邀请高手开发一个IM软件 特级菜鸟请教编程,望高手指点 各位 winrar解压分卷文件谁会啊 如何解决以下代码编译的时候错误!!
m_rs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL,CRecordset::readOnly);
编译通过运行时报错,列没被绑定
m_rs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL,CRecordset::readOnly);
编译通过运行时报错,列没被绑定
比如:
m_rs = connection对象.Execute((_bstr_t)strSQL, ..., adCmdText);
strSQL = ("SELECT * FROM ") + str;
m_rs = m_db.ExecuteSQL((_bstr_t)strSQL);
error C2582: 'CRecordset' : 'operator =' function is unavailable
Error executing cl.exe.
看看下面的代码可以参考不:_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;BOOL CWanGuanDialog::OnInitDialog()
{
CDialog::OnInitDialog();
CString szPath;
GetModuleFileName(NULL,szPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
szPath.ReleaseBuffer ();
int nPos;
nPos = szPath.ReverseFind ('\\');
szPath = szPath.Left (nPos);
szPath = szPath + "\\WanGuan";
CString szFile = szPath + "\\PSTAD2003.mdb";
CString szAtr;
szAtr.Format(_T("DSN=PSTAD2003!DBQ=%s!DEFAULTDIR=%s!!"),szFile,szPath);
int nlen;
nlen = szAtr.GetLength();
for(int i = 0;i <nlen;i++)
{
if(szAtr.GetAt(i) == '!')
szAtr.SetAt (i,'\0') ;
}
if (FALSE == SQLConfigDataSource(NULL, ODBC_ADD_DSN, _T("Microsoft Access Driver (*.mdb)\0"), (LPCWSTR)szAtr))
AfxMessageBox(_T("数据源配置失败,确认数据库PSTAD2003.mdb是否在当前路径下!")); AfxOleInit();
m_pConnection.CreateInstance(_uuidof(Connection));
m_pRecordset.CreateInstance(_uuidof(Recordset));
try
{
m_pConnection->Open("DSN=PSTAD2003","","",0);//连接数据库
}
catch(_com_error e)
{
AfxMessageBox(_T("数据库连接失败,确认数据库PSTAD2003.mdb是否在当前路径下!"));
return FALSE;
}
try
{
CString strSql=_T("select * from PSTAD2003");
m_pRecordset->Open((LPCTSTR)strSql,(IDispatch*)m_pConnection,adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
try
{
if(!m_pRecordset->BOF)
m_pRecordset->MoveFirst();
else
{
AfxMessageBox(_T("表内数据为空"));
return FALSE;
}
while(!m_pRecordset->AdoEOF)
{
_variant_t var = m_pRecordset->GetCollect("外径");
if(var.vt != VT_NULL)
m_OD = (LPCSTR)_bstr_t(var);
m_COMBO.AddString((LPCTSTR)m_OD);
m_pRecordset->MoveNext();
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
return TRUE; // return TRUE unless you set the focus to a control
}