我在工程中CADORecordBinding绑定我的字段
已经绑定成功,因为我已经能操纵显示记录了!
但是,如何添加记录一直不成功!
请大家帮忙!
class CCustom : public CADORecordBinding
{
BEGIN_ADO_BINDING(CCustom)
ADO_VARIABLE_LENGTH_ENTRY4(1, adVarChar, m_bd_id, sizeof(m_bd_id),true)
ADO_VARIABLE_LENGTH_ENTRY4(2, adVarChar, m_bd_name, sizeof(m_bd_name),true)
ADO_NUMERIC_ENTRY2(3,adInteger,m_bd_yuwen,0,0,true)
ADO_NUMERIC_ENTRY2(4,adInteger,m_bd_shuxue,0,0,true)
END_ADO_BINDING()
public:
CHAR m_bd_id[50];
CHAR m_bd_name[50];
int m_bd_yuwen;
int m_bd_shuxue;};CADODatabase db;
CADORecordset rs;
db.SetConnectionString("Provider=MicroSoft.Jet.OLEDB.4.0;Data Source=xs.mdb");
db.Open("","","");
rs.Open(db.GetActiveConnection(),"SELECT *FROM xs");
CCustom cs;
rs.RecordBinding(cs);
请帮忙!
或者哪位高手有添加的例子也可拿来一看哈 !
谢谢 !
已经绑定成功,因为我已经能操纵显示记录了!
但是,如何添加记录一直不成功!
请大家帮忙!
class CCustom : public CADORecordBinding
{
BEGIN_ADO_BINDING(CCustom)
ADO_VARIABLE_LENGTH_ENTRY4(1, adVarChar, m_bd_id, sizeof(m_bd_id),true)
ADO_VARIABLE_LENGTH_ENTRY4(2, adVarChar, m_bd_name, sizeof(m_bd_name),true)
ADO_NUMERIC_ENTRY2(3,adInteger,m_bd_yuwen,0,0,true)
ADO_NUMERIC_ENTRY2(4,adInteger,m_bd_shuxue,0,0,true)
END_ADO_BINDING()
public:
CHAR m_bd_id[50];
CHAR m_bd_name[50];
int m_bd_yuwen;
int m_bd_shuxue;};CADODatabase db;
CADORecordset rs;
db.SetConnectionString("Provider=MicroSoft.Jet.OLEDB.4.0;Data Source=xs.mdb");
db.Open("","","");
rs.Open(db.GetActiveConnection(),"SELECT *FROM xs");
CCustom cs;
rs.RecordBinding(cs);
请帮忙!
或者哪位高手有添加的例子也可拿来一看哈 !
谢谢 !
解决方案 »
- 获取vc的窗口句柄问题
- 超级解压, 解压,脱壳功能, 有兴趣可以看看
- volatile类型的变量在互斥线程时能用吗?
- 请问如何在VC6.0上调用VS2005.NET上的DataGridView控件,该怎么做?难道要对其进行封装成ActiveX控件?
- 关于获得网页中图片点击事件
- 非常简单的问题,我一时忘了怎么弄了
- 如何检查是否发生内存泄漏?
- 哪里有摩记的手机铃声格式文档。都不知道在哪里发问,唯有在这里
- 什么是回调函数,回调函数有什么用?
- 用什么打开这个文件
- 怎么捕获非标准usb设备插入或拔出消息?
- 我用vs自带的windows installer打包,如何自动添加需要的dll,或者如何知道需要添加哪些dll
{
BEGIN_ADO_BINDING(CTenementSet)
ADO_VARIABLE_LENGTH_ENTRY2(1, adVarChar, m_szName, sizeof(m_szName), m_lsts_Name, TRUE)
ADO_VARIABLE_LENGTH_ENTRY2(2, adVarChar, m_szGender, sizeof(m_szGender), m_lsts_gender, TRUE)
ADO_VARIABLE_LENGTH_ENTRY2(3, adVarChar, m_szIDCard, sizeof(m_szIDCard), m_lsts_IDCard, TRUE)
END_ADO_BINDING()public:
//重置绑定标志
void ResetBindingStatus(){ m_lsts_Name = 0;
m_lsts_gender = 0;
m_lsts_IDCard = 0;
} inline LPCSTR GetName(){
return m_lsts_Name == adFldOK ? m_szName : _T("");
}
inline LPCSTR GetGender(){
return m_lsts_gender == adFldOK ? m_szGender : _T("");
}
inline LPCSTR GetIDCard(){
return m_lsts_IDCard == adFldOK ? m_szIDCard : _T("");
}
TCHAR m_szName[9];
TCHAR m_szGender[3];
TCHAR m_szIDCard[19];
};
所以我用了个笨法处理的……各位大虾不要笑!!!保存功能如下:
CWaitCursor cursor;
extern _ConnectionPtr pGConnection;
_RecordsetPtr pRecordset = NULL;
IADORecordBinding *pTenementSet = NULL; CString strSQL = _T("select * from H_TENEMENT_Info");
if(m_bEdit)
strSQL += _T(" where T_CODE = '")
+ m_strCode + _T("'");
try{
TESTHR(pRecordset.CreateInstance("ADODB.Recordset"));
pRecordset->Open((_bstr_t)strSQL,
_variant_t((IDispatch *) pGConnection, true),
adOpenKeyset,
adLockOptimistic,
adCmdText);
TESTHR(pRecordset->QueryInterface(__uuidof(IADORecordBinding),
(LPVOID*)&pTenementSet));
TESTHR(pTenementSet->BindToRecordset(&m_TenementSet));
m_TenementSet.ResetBindingStatus();
//填充绑定缓冲
// 将数据从控件中填入绑定记录集,用_strcpy(),代码略…… if(m_bEdit){
TESTHR(pTenementSet->Update(&m_TenementSet));
}
else{
TESTHR(pTenementSet->AddNew(&m_TenementSet));
}
pTenementSet->Release();
pRecordset->Close();
}
catch (_com_error &e) {
DisplayError(e.Description);
if(e.Error() == 0x800a0bcd){
AddNULL();
}
}AddNULL();的内容就简单了,就是执行个insert空记录的sql,哈哈……