怎么配置ODBC程序中SQL语句的参数
大家好,小弟初学VC,现有一关于ODBC中CDatabase,CRecordset的参数问题。
我在程序中动态生成CDatabase,CRecordset对象,而不是由ClassWizard等工具派生新的类:
CDatabase m_db;
int hr = m_db.OpenEx( _T( "DSN=pubs;UID=sa;PWD=" ),
CDatabase::noOdbcDialog);
if (hr>0) {};
else return;
//此时我想利用CDatabase的ExecuteSQL执行一段SQL语句,如:
m_db.ExecuteSQL(_T("Update table1 set col_name1='param1'");
//数据库pubs 中有table1表,中有col_name1字段,上句'param1'代表的
//内容我想以参数形式给出,我该怎么处理?CRecordset能完成也是一样的
//前提是SQL语句中参数数量、名字都不能预先确定。谢谢!
问题点数:20、回复次数:4Top
1 楼KeepLoading(enjoy coding)回复于 2002-05-20 14:36:16 得分 0
请问你用的是OLE DB还是ADO啊?请来这里坐坐:
http://www.csdn.net/Expert/TopicView1.asp?id=737000Top
2 楼pcman1990(pcman)回复于 2002-05-20 14:42:43 得分 20
假设你的参数是 LPSTR lpszParam;
CString strSQL;
strSQL.Format(_T("Update table1 set col_name1=\'%s\'"), lpszParam);
m_db.ExecuteSQL(strSQL);Top
3 楼KeepLoading(enjoy coding)回复于 2002-05-20 14:44:26 得分 0
你说的问题,在ODBC APIs中,SQL语句可以写成"Update table1 set col_name1=?"然后用SQLBindParam绑定一个参数。或许不能满足你的要求,权做个提示吧!Top
4 楼PopYang(齐云山人)回复于 2002-05-21 10:51:51 得分 0
非常感谢pcman,这正是我想要的,怎么这么简单的组合我都没想到呢,哎,对VC确是不熟;也感谢keeploading的提示,不过我习惯于在程序运行时动态组织SQL语句,不知做成绑定参数的形式会不会不够灵活?
我第一次登陆CSDN,也第一次在CSDN上留问题,就有这么都热心人帮忙,使我深受感动,希望我能尽早进入角色,也能帮别人解决点问题。Top




