用Execute的确是能执行,删除,插入这些都没问题,但是查找怎么办???需要返回数据呀,鬼知道他把数据放哪去了
解决方案 »
- 使用CWnd::CreateEx创建一个WS_POPUP风格的窗体
- (初学):在窗口中输出文字
- 问个很菜的问题 关于.dsw和dsp是什么英文单词的缩写啊?
- 收发线程池和分析线程池之间如何很好的配合工作?
- 帮帮小弟吧!!!各位大哥
- 两个文件包含问题
- 怎么把vc里面默认得按钮上面的字体改一下,默认得太难看了(vc6)
- ASSERT()参数不支持#DEFINE定义的常量吗?
- 关于自定义控件类与跨进程创建控件的问题?
- 点击CTreeCtrl的一个节点旁的"+"时会调用OnItemexpanding()函数,
- 在98下如何送ATAPI command给USB 光驱?
- ADO程序运行出现Runtime Error
rs->Open()
public CADORecordBinding
{
private:
//绑定入口宏
BEGIN_ADO_BINDING(CUsers)
ADO_VARIABLE_LENGTH_ENTRY2( 1, ::adChar, m_user_name, sizeof(m_user_name), dw_user_nameStatus, TRUE)
ADO_VARIABLE_LENGTH_ENTRY2( 2, ::adChar, m_user_pwd, sizeof(m_user_pwd), dw_user_pwdStatus, TRUE)
ADO_VARIABLE_LENGTH_ENTRY2( 3, ::adInteger, m_state, 2, dw_stateStatus, TRUE)
END_ADO_BINDING()public:
CHAR m_user_name[40];
DWORD dw_user_nameStatus; CHAR m_user_pwd[10];
DWORD dw_user_pwdStatus; int m_state;
DWORD dw_stateStatus;public:
CUsers(void);
~CUsers(void);
};
================================================== 华丽的分割线 =============================================当然,少不了要声明CUsers类的实例CUsers *m_pUsers;
m_pUsers = new CUsers
================================================== 华丽的分割线 =============================================然后,在RecordSet对象调用open函数: char sql [1024];
sprintf(sql,"select * from user"); //根据SQL语句打开相应的数据集合
HRESULT hr = this->m_pRecordset->Open(
sql,
this->m_pConnection.GetInterfacePtr(),
adOpenStatic,
adLockOptimistic,
adCmdText);
if (!SUCCEEDED(hr))
{
sprintf(msg,"Recordset Open Fail !");
printf("%s\n",msg);
return false;
}
================================================== 华丽的分割线 =============================================接着,将数据集和user表绑定 hr = this->m_pRecordset->QueryInterface( __uuidof(IADORecordBinding), (LPVOID *)&this->m_pADORecordBinding);
if (!SUCCEEDED(hr))
{
sprintf(msg, "Users Recordset QueryInterface Fail !");
printf("%s\n",msg);
return false;
} hr = this->m_pADORecordBinding->BindToRecordset(this->m_pUsers);
if (!SUCCEEDED(hr))
{
sprintf(msg,"Users BindToRecordset Fail !");
printf("%s\n",msg);
return false;
}
================================================== 华丽的分割线 =============================================最后,遍历数据集,取出各条记录: //遍历数据表
while (!scan->m_pRecordset->adEOF)
{
strncpy(username,m_pUsers->m_user_name,sizeof(m_pUsers->m_user_name);
strncpy(password,m_pUsers->m_user_pwd, sizeof(m_pUsers->m_user_pwd);
state = m_pUsers->m_state; //取下一条记录
scan->m_pRecordset->MoveNext();
}