VC++打开access数据库,数据库中包含备注型字段,字段太大,提示数据被截断,出错

来源:百度知道 编辑:UC知道 时间:2024/05/29 09:40:07
利用VC++程序ODBC链接Access数据库,向数据库添加了一条记录(备注型字段很长,但远没有达到限定字符数),再次利用VC++语言打开数据库时,提示数据被截断。但是查看数据库得知,记录已经完整的添加到数据库中了,也就是vc++打开比较大的记录时出错,这是什么原因导致的?该如何解决?望高手解答,重谢!
其实就是用vc建立一个界面,对一个数据库进行相关的操作,比如插入,查询。。。

请4楼的朋友说一下再哪个章节呀

肯定是你的在自动生成的数据库类的时候出现的问题,vchar 默认的是CStringW
看看是不是都是。
你把连接参数设置成CRecordset::snapshot 看看

VC++语言打开数据库?什么意思没搞明白!

用odbc向数据库写入二进制数据的问题2009年02月05日 星期四 15:34odbc/mfc 向mysql 写入二进制数据的问题

发表于:2008-10-21 18:01:33 楼主
问题描述:
向mysql添加其它类型的数据都没问题,当添加二进制数据,例如一个图片,程序执行正常但实际上并没有添加进去。
奇怪的是:我用mysql 的C API 向数据库中添加该图片后,使用 odbc/mfc 却可以很好的把它读出来。

添加二进制文件的示例代码如下:
其中rs 为结果集;m_data 的类型为CLongBinary
CFileStatus fileStatus;
CFile fp("viewpp.jpg",CFile::modeRead);
fp.GetStatus(fileStatus);

Cnctable *rs=new Cnctable(mbase);
rs->Open(CRecordset::snapshot);

rs->AddNew();
rs->m_data.m_hData = ::GlobalAlloc(GPTR ,(size_t)fileStatus.m_size);
size_t temps= fp.Read(rs->m_data.m_hData,fileStatus.m_size);
rs->m_data.m_dwDataLength = fileStatus.m_size;
rs->SetFieldNull(&rs->m_data,FALSE);
rs->Update();
注:使用的odbc驱动为3.51
如有解答不胜感激。