一个CRecordset类继承的类CStuSet,连接在数据库的一个表,怎样用SQL实现多表连接查询??
CStuSet m_set(&m_database);
CString strSQL;
strSQL=_T("select * form table1,table2 where table1.XX=table2.XX and
table1.XXX=X");
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
上面程序出错,我是初手,多谢指教!!
CStuSet m_set(&m_database);
CString strSQL;
strSQL=_T("select * form table1,table2 where table1.XX=table2.XX and
table1.XXX=X");
m_set.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
上面程序出错,我是初手,多谢指教!!
解决方案 »
- 急!Group Box里一组radio button. 如何设置隐藏不见呢?
- vs2005用MFC文本框时,怎么把光标设置在右下,而且编辑是多出的字会自动跳到上一行最右边,就像windows7中自带的计算器一样
- 如何根据DLL生成函数供其他程序调用?
- C语言两个基础问题
- 请问:如何判断控件是否存在焦点?
- 鼠标实际点击、SendInput模仿鼠标点击,这2者有什么区别?
- 如何在CControlBar在加入一对话框
- 新手急问: 关于IE下载控件的问题
- 超级难题:关于.h与.cpp的区别。
- 想问大家知道游戏的地图卷轴是怎么实现的?
- 我的.NET和VC是中文的,Visual Assist 不能用?那儿有 .NET和VC 改变为英文的系统文件?
- DAO程序无法脱离vc环境的问题,特别奇怪的问题.
如果是对应的一个表,而你的strSQL涉及多个表,则m_set.OpenAFX_DB_USE_DEFAULT_TYPE,strSQL)当然会出错了;
你可一在开始生成CStuSet类时让它对应要连接多个表。
也可以对每一个表对应一个记录集,把查询结果存于一个变量之中
然后用此变量作为条件去对另一些表进行查询..................
就这样了!!!1
CDatabase Form;
if(!Form.Open(NULL,false,false,"ODBC;DSN=你的数据库名称",true))
{
::AfxMessageBox("纪录集打开错误!");
return;
}
CRecordset* pSelect=new CRecordset;
CString mrsSql;
pSelect->m_pDatabase=&Form;
mrsSql=这里写多表查询的SQL语句
if(!pSelect->Open(CRecordset::forwardOnly,mrsSql))
{
::AfxMessageBox("记录打开错误!");
return;
}
记住只能用forwardonly,因为这么关联起来的CRecordset是不支持回滚的(也没有回滚的必要)然后Crecordset使用方法会吧?