关于数据库Open()时出错的一个问题~~~~~~~~
用access建的一个表,其中一列abc的类型为“备注”,程序中用一个继承自CRecordSet的类对象datab访问该表
,当abc的值小于256个字符的时候程序正常,当abc中有超过255个字符的值时,程序执行到datab.Open()出错,也就是在打开数据库的时候出错,该类用来接受abc列的变量是CString类型的,CString类型的可以存储超过255个字符啊,这是为什么????
多谢~~~~~~~~~~
问题点数:100、回复次数:4Top
1 楼laiyiling(陌生人[MVP])回复于 2004-09-03 20:59:20 得分 60
应该是你定义的继承CRecordSet类出了问题,
你试试把.cpp文件的部分代码修改如下:
RFX_Text(pFX, _T("[ChartOrgan]"), m_ChartOrgan, 2000); 在后面加个数字表示大小Top
2 楼musisonic(柯尔特制造)回复于 2004-09-04 09:19:46 得分 0
继承的时候是用向导继承的,直接就选了CRecordSet为基类,没其他跟多的选择,这样也会出错啊~~`
Top
3 楼xindao_wang(山中客)回复于 2004-09-04 09:22:44 得分 40
主要是数据交换时出现问题,vc和数据库交换的默认最大字符是256个,
函数原型:
void RFX_Text( CFieldExchange* pFX, const char* szName, CString& value, int nMaxLength = 255, int nColumnType = SQL_VARCHAR, short nScale = 0 );
所以在超过256个时,要手工改变.
Top
4 楼musisonic(柯尔特制造)回复于 2004-09-04 09:29:50 得分 0
刚试过了,果然强人啊,已经给分~
to::xindao_wang(nike), laiyiling回复的比你早很多,不过你讲的比较清楚~~
so,给你40分 给laiyiling60,可以吗??Top




