VC+OLEDB+ACCESS,存数据时,列出错

atuwang 2009-11-25 11:14:08
VC.net2005+OLEDB+ACCESS,在程序中动态创建表格,表格字段及其属性如下:

CREATE TABLE YuanMuInfo (YuanMuInfoID INT,CaiFaNum NVARCHAR(7),TongZhiNum NVARCHAR(7),CheNum NVARCHAR(7),MuTouType NVARCHAR(4),MuTouNum INT,MuTouNum2 INT,CaiChang REAL,JianChiJing REAL,CaiJi REAL,bManual INT,Photo IMAGE)
在存数据库时,MuTouNum实际存的值是MuTouNum2的值,而MuTouNum2却被设置为0,
若没添加MuTouNum2字段,则后面的CaiChang字段的值就自动被设为0,
是不是绑定时列对齐出错,还是其他原因呢?
...全文
66 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
atuwang 2009-12-01
  • 打赏
  • 举报
回复
结贴了,虽没满意,仍谢谢楼上的回复
Dingnifei123 2009-11-26
  • 打赏
  • 举报
回复
有两个可能:
1、列名对应有问题;
2、插入数据格式有问题,比如,把'abc123'插入到real的字段中,转换不了,

所以,你从这两个角度去看看,

最好把插入的sql语句找出来,
atuwang 2009-11-26
  • 打赏
  • 举报
回复
CREATE TABLE YuanMuInfo ( ACCESS中数据类型
YuanMuInfoID INT, //int类型 数字、长整型
CaiFaNum NVARCHAR(7), //Unicode字符串,类似WCHAR[7] 文本
TongZhiNum NVARCHAR(7), //Unicode字符串,类似WCHAR[7] 文本
CheNum NVARCHAR(7), //Unicode字符串,类似WCHAR[7] 文本
MuTouType NVARCHAR(4), //Unicode字符串,类似WCHAR[4] 文本
MuTouNum INT, //int类型 数字、长整型
MuTouNum2 INT, //int类型 数字、长整型
CaiChang REAL, //float类型 数字、双精度
JianChiJing REAL, //float类型 数字、双精度
CaiJi REAL, //float类型 数字、双精度
bManual INT, //int类型 数字、长整型
Photo IMAGE //图片类型 OLE 对象
)
atuwang 2009-11-26
  • 打赏
  • 举报
回复
出错的话就无法保存报数据库对应表格中
atuwang 2009-11-26
  • 打赏
  • 举报
回复
插入数据代码如下:

//0-YuanMuInfoID
*(int*)(pData+prgBinding[0].obValue)=iNum;
*(ULONG*)(pData+prgBinding[0].obLength)=4;
*(DBSTATUS*)(pData+prgBinding[0].obStatus) = DBSTATUS_S_OK;

//1-CaiFaNum
wcscpy_s((WCHAR*)(pData+prgBinding[1].obValue),7,theApp.m_CaiFaDuiInfo.szCaiFaNum);
*(ULONG*)(pData+prgBinding[1].obLength) = (ULONG)wcslen((WCHAR*) (pData+prgBinding[1].obValue))*sizeof(WCHAR);
*(DBSTATUS*)(pData+prgBinding[1].obStatus) = DBSTATUS_S_OK;

//2-TongZhiNum
wcscpy_s((WCHAR*)(pData+prgBinding[2].obValue),7,theApp.m_CaiFaDuiInfo.szTongZhiNum);
*(ULONG*)(pData+prgBinding[2].obLength) = (ULONG)wcslen((WCHAR*)(pData+prgBinding[2].obValue))*sizeof(WCHAR);
*(DBSTATUS*)(pData+prgBinding[2].obStatus) = DBSTATUS_S_OK;

//3-CheNum
wcscpy_s((WCHAR*)(pData+prgBinding[3].obValue),7,theApp.m_CaiFaDuiInfo.CheNum);
*(ULONG*)(pData+prgBinding[3].obLength) = (ULONG)wcslen((WCHAR*)(pData+prgBinding[3].obValue))*sizeof(WCHAR);
*(DBSTATUS*)(pData+prgBinding[3].obStatus) = DBSTATUS_S_OK;

//4-MuTouType
wcscpy_s((WCHAR*)(pData+prgBinding[4].obValue),4,theApp.m_YuanMuInfo.MuTouType);
*(ULONG*)(pData+prgBinding[4].obLength) = (ULONG)wcslen((WCHAR*)(pData+prgBinding[4].obValue))*sizeof(WCHAR);
*(DBSTATUS*)(pData+prgBinding[4].obStatus) = DBSTATUS_S_OK;

//5-MuTouNum
*(int*)(pData+prgBinding[5].obValue) = theApp.m_YuanMuInfo.MutouID;
*(ULONG*)(pData+prgBinding[5].obLength) = 4;
*(DBSTATUS*)(pData+prgBinding[5].obStatus) = DBSTATUS_S_OK;

//6-CaiChang
*(float*)(pData+prgBinding[6].obValue) = theApp.m_YuanMuInfo.CaiChang;
*(ULONG*)(pData+prgBinding[6].obLength) = 4;
*(DBSTATUS*)(pData+prgBinding[6].obStatus) = DBSTATUS_S_OK;

//7-JianChiJing
*(float*)(pData+prgBinding[7].obValue) = theApp.m_YuanMuInfo.JianChiJing;
*(ULONG*)(pData+prgBinding[7].obLength) = 4;
*(DBSTATUS*)(pData+prgBinding[7].obStatus) = DBSTATUS_S_OK;

//8-CaiJi
*(float*)(pData+prgBinding[8].obValue) = theApp.m_YuanMuInfo.Caiji;
*(ULONG*)(pData+prgBinding[8].obLength) = 4;
*(DBSTATUS*)(pData+prgBinding[8].obStatus) = DBSTATUS_S_OK;

//9-bManual
*(int*)(pData+prgBinding[9].obValue)=1;
*(ULONG*)(pData+prgBinding[9].obLength)=4;
*(DBSTATUS*)(pData+prgBinding[9].obStatus) = DBSTATUS_S_OK;
上面的代码与以前的表格对应,少了一个MuTouNum2一项。
atuwang 2009-11-25
  • 打赏
  • 举报
回复
是从其他地方搬过来的
CREATE TABLE YuanMuInfo (
YuanMuInfoID INT, //int类型
CaiFaNum NVARCHAR(7), //Unicode字符串,类似WCHAR[7]
TongZhiNum NVARCHAR(7), //Unicode字符串,类似WCHAR[7]
CheNum NVARCHAR(7), //Unicode字符串,类似WCHAR[7]
MuTouType NVARCHAR(4), //Unicode字符串,类似WCHAR[4]
MuTouNum INT, //int类型
MuTouNum2 INT, //int类型
CaiChang REAL, //float类型
JianChiJing REAL, //float类型
CaiJi REAL, //float类型
bManual INT, //int类型
Photo IMAGE //图片类型
)
快乐鹦鹉 2009-11-25
  • 打赏
  • 举报
回复
那能说说创建后各个字段都是什么类型的么?在ACCESS中看到的。
你这个SQL语句是从其它地方搬来的么?
atuwang 2009-11-25
  • 打赏
  • 举报
回复
这个倒没了解过,只是表格动态创建成功,而且各个字段都有
快乐鹦鹉 2009-11-25
  • 打赏
  • 举报
回复
ACCESS中有你列出的这些字段类型吗???

4,011

社区成员

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

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