关于VC++6.0往数据库中insert into数据字符的限制

recurtonet 2017-03-07 08:35:00
我用ODBC往sql server 2000中insert into数据,可是结果只能insert进256个字符,代码如下
CDatabase m_dbAgent;
CString str,sql;
m_dbAgent.OpenEx("DSN=yidong;UID=sa;PWD=ilo2016");
sql ="insert into dbo.test(Col001)values('";
sql += "1aaaaaaaaaaaaaaaaaaccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\
cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccddccccddccccddccccddccccddccccddcccccccccccd\
ddcccccccccccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa2";
sql += "')";
m_dbAgent.ExecuteSQL(sql);//1开头,2结尾

结果写进数据库的只有256个字符,数据库表中对应字段是varchar,8000字符,无论是用ODBC的方法还是ADO的方法,都是如此,不知为何,哪位热心的大侠请帮忙一下,多谢了。
但是同样的insert 语句在查询分析器中试是没有问题的。
...全文
870 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
recurtonet 2017-03-08
  • 打赏
  • 举报
回复
引用 7 楼 zgl7903 的回复:
GetODBCFieldInfo 查看信息 ALTER TABLE tableName ADD columnName varchar(1024) 插入一列, 然后操作这个列试试看
好的,今天有空试试,多谢了。
recurtonet 2017-03-08
  • 打赏
  • 举报
回复
难道要做BLOB类型数据的存取,这样太麻烦,应该是哪里256限制了,有谁知道的告诉一声,谢谢。
zgl7903 2017-03-08
  • 打赏
  • 举报
回复
GetODBCFieldInfo 查看信息 ALTER TABLE tableName ADD columnName varchar(1024) 插入一列, 然后操作这个列试试看
worldy 2017-03-08
  • 打赏
  • 举报
回复
检查m_dbAgent.ExecuteSQL(sql);这个函数的实现,是不是其内部有做了截断?
赵4老师 2017-03-08
  • 打赏
  • 举报
回复
在现实世界中,除时间和空间可能是无限的以外,其它任何事物都是有限的。
recurtonet 2017-03-07
  • 打赏
  • 举报
回复
引用 5 楼 worldy 的回复:
[quote=引用 1 楼 recurtonet 的回复:] 是不是vc写入varchar的列,只能是256字符啊,在线等
如果sql工具能写入超过256个字符,VC不应该只能输入256字符 你数据库字段换别的类型看看[/quote] 换了几个跟字符有关的类型,好像还是不行。
worldy 2017-03-07
  • 打赏
  • 举报
回复
引用 1 楼 recurtonet 的回复:
是不是vc写入varchar的列,只能是256字符啊,在线等
如果sql工具能写入超过256个字符,VC不应该只能输入256字符 你数据库字段换别的类型看看
recurtonet 2017-03-07
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
afxMessageBox(sql);//检查一下sql语句是否正确 m_dbAgent.ExecuteSQL(sql);
没有问题了,是以2结尾的[/quote] 用afxMessageBox打印sql字符串显示是没有问题的,可是写入数据库就出问题了。
recurtonet 2017-03-07
  • 打赏
  • 举报
回复
引用 2 楼 worldy 的回复:
afxMessageBox(sql);//检查一下sql语句是否正确
m_dbAgent.ExecuteSQL(sql);


引用 2 楼 worldy 的回复:
afxMessageBox(sql);//检查一下sql语句是否正确
m_dbAgent.ExecuteSQL(sql);


引用 2 楼 worldy 的回复:
afxMessageBox(sql);//检查一下sql语句是否正确
m_dbAgent.ExecuteSQL(sql);


没有问题了,是以2结尾的
worldy 2017-03-07
  • 打赏
  • 举报
回复
afxMessageBox(sql);//检查一下sql语句是否正确 m_dbAgent.ExecuteSQL(sql);
recurtonet 2017-03-07
  • 打赏
  • 举报
回复
是不是vc写入varchar的列,只能是256字符啊,在线等

4,011

社区成员

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

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