关于CDaoRecordset的问题~~~~插入新的记录出错!

vanillazgyin 2004-08-30 04:59:07
在CDaoRecordset派生类CDaoPInfoRecordset的DoFieldExchange中加入
DFX_Text(pFX, _T("[PName]"), m_PName);//PName为数据库表中字段,文本类型;
其中m_PName定义为public: CSring m_PName;
在程序中应用过程为
CDaoPInfoRecordset pInfoRecordset;
pInfoRecordset.Open(&thePInfoDef);//thePInfoDef定义为有theDb打开的Access2000数据库
pInfoRecordset.MoveLast();
pInfoRecordset.AddNew();
CString m_Name = "妃暄";
pInfoRecordset.m_PName = m_Name;
pInfoRecordset.Update();
pInfoRecordset.Close();
程序运行后我打开access观察数据库发现对应的表中记录是增加了,可是PName字段为空;
...全文
128 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vanillazgyin 2004-09-01
  • 打赏
  • 举报
回复
看来用access2000是无法使用DFX了,还是把库转化为Access97好了.
vanillazgyin 2004-08-31
  • 打赏
  • 举报
回复
上面第二种情况已经解决, 把COleVariant tmpVal = COleVariant(strTemp); 换为
COleVariant tmpVal(strTemp,VT_BSTRT);即可; 但针对第一种情况使用DFX机制在MFC DAO中为Access2000数据库表增加记录仍然有问题.
vanillazgyin 2004-08-31
  • 打赏
  • 举报
回复
不是, 我用CString strCommand = ("INSERT INTO PatientInfo (PName, DName, RName)\
VALUES ('婠婠', '萱萱','神经科')");
theDb.Execute(strCommand);
一切正常.....应该是DFX的问题, vc 6.0不支持access2000, Update的时候没有执行DoFieldExchange操作;
内存泄漏 2004-08-31
  • 打赏
  • 举报
回复
是不是数据库字段的长度小了??
vanillazgyin 2004-08-31
  • 打赏
  • 举报
回复
用classwizard派生CDaoRecordset类时不能和Access2000创建的数据库表关联, 所以用DDX时出现问题,也就是上面执行pInfoRecordset.Update()后并没有更新数据库.....不知道怎么解决这个问题............................
vanillazgyin 2004-08-31
  • 打赏
  • 举报
回复
有人知道吗......知道的麻烦帮帮我~~~
vanillazgyin 2004-08-30
  • 打赏
  • 举报
回复
当我换为以下部分时
CString strTemp = "feixuan";
COleVariant tmpVal = COleVariant(strTemp);
pInfoRecordset.SetFieldValue("PName", tmpVal);
pInfoRecordset.Update();
pInfoRecordset.Close();
程序运行后我打开access观察数据库发现对应的表中记录增加了,可PName字段只显示f一个字母;

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧