社区
MS-SQL Server
帖子详情
难度1.1-----------ODBC的BUG:无法保存长文本
guo
2000-12-26 05:06:00
有一个高难度问题:当我通过ODBC将一篇长文件(已经确认与长度无关)保存进TEXT(SQL7)类型的字段,当我重新读取时发现字数少了,读出的文本被剪短.而使用OLEDB FOR SQLSERVER 则可正常操作.
...全文
208
14
打赏
收藏
难度1.1-----------ODBC的BUG:无法保存长文本
有一个高难度问题:当我通过ODBC将一篇长文件(已经确认与长度无关)保存进TEXT(SQL7)类型的字段,当我重新读取时发现字数少了,读出的文本被剪短.而使用OLEDB FOR SQLSERVER 则可正常操作.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
skt985
2001-06-01
打赏
举报
回复
84808关注!
guo
2001-01-04
打赏
举报
回复
你好 happlaodu,我也曾经不做任何特殊的修改将7M文本添加到SQLSERVER中,但我手头有一篇文章只有48k却无法将其正常加入(加入后读出,长度不同),我将该文件寄给你希望比我运气好.
happylaodu
2001-01-03
打赏
举报
回复
原因出在RFX上。
记录集交换函数:
void RFX_Text( CFieldExchange* pFX, const char* szName, CString& value,
int nMaxLength = 255, int nColumnType = SQL_VARCHAR, short nScale = 0 );
中, 不要使用默认参数值 nMaxLength = 255, 显示制定这个值为你的最大长度便可!
理论上这个值能达到INT_MAX,即2147483647,但如果真把它改到这么大,先是出错(在打开该表的时候出错,跟踪进去看,原来是在绑定的时候出错)可见不能设这么大。稍微改小一点呢?改为200000000,在打开表的时候,机器忙了足有两分钟,最后告诉我说系统的缓存太小,要作调整(我的缓存可是有300M的,还说小),吓得赶快终止。证明绑定的进候,实际上要在内存中开辟一块缓冲给记录集,而像上面那样设,它要开出将近200M空间出来,怪不着这么难。 最后设为2000000,即200万字节(100万字),打开时会有近半秒的闪动,可以忍受。
我在数据库中放入2MB的文本成功。
我的地址:happylaodu@21cn.com
guo
2001-01-03
打赏
举报
回复
我知道INSERT语句的长度有限制,但我使用profile得到的sql语句和使用ADO时(正常)的相同。从INSERT的截断的情况看,不是由于该语句太长,似乎是text字段中的特殊东西(不是字符)。比如我想 insert into tb (a,b,c) values(1,'dkdkdkdkdk',1),其中b是text类型,当我传递sql语句时,会变成 insert into tb (a,b,c) values(1,'dkdkdkdkdk,1)强制将'号删除!
guo
2001-01-02
打赏
举报
回复
正是在VC中出现过后,我才使用DELPHI5+ADO(for ODBC)进行验证,文章不能插入到SQLSERVER7中(2000中同样)TEXT字段中,或者能插入到SQLSERVER7中但如果再读取这条记录,TEXT字段的长度较原文短!
由于这个问题文章较长,不便写在页面上,如果有兴趣,我可以EMAIL给你(没有压缩时48.2K)
yangzi
2001-01-02
打赏
举报
回复
你的文章是否超过8K?
如果超过,insert 有可能不对。
xmlingo
2001-01-02
打赏
举报
回复
ODBC SQL语句长度有限制,具体多长我也不请楚
如果你由ADO 或DAO 请使用该对象的专门方法进行更新
============]我的灵魂在高处[====================== xmlingo
guo
2001-01-02
打赏
举报
回复
版本没有问题,我使用的是sqlserver 2000携带的odbc。
数据库操作使用的方法是insert.
yangzi
2001-01-02
打赏
举报
回复
我想知道你是用putdata操作的吗?还是直接用insert
BIG_panda
2001-01-02
打赏
举报
回复
这个问题以前我也遇见过,是因为odbc驱动程序太旧的原因,你可以升及该驱动到更新
yangzi
2000-12-30
打赏
举报
回复
呵呵,你是怎么用ODBC的
happylaodu
2000-12-30
打赏
举报
回复
请问你用的是什么语言开发的,如果是VC,那不是ODBC的问题,而是程序的问题……我可帮你解决
The_east_key
2000-12-28
打赏
举报
回复
请到http://www.etechbase.net/advsearch.php,将你这个问题输入到检索框,然后选择准确匹配查询,应该可以帮助你解决这个问题的。
my8848
2000-12-26
打赏
举报
回复
独家关注。
sqlmap用法详解
在你为开发者系统提供潜在的
Bug
报告时,推荐使用这个等级,同时附加上使用选项 -t 生成的流量日志文件标准输出文件。 需要更深入地检测潜在
Bug
s 或应对未知情况时,推荐使用 4 或以上等级。应当注意,还可以使用...
Sqlmap基础用法
-d DIRECT 直接连接数据库 -u URL, --url=URL 目标 URL(例如:"http://www.site.com/vuln.php?id=1") -l LOGFILE 从 Burp 或 WebScarab 代理的日志文件中解析目标地址 -m BULKFILE 从
文本
文件中获取批量目标 -r ...
性能测试实战--计划测试(一)
1.1
计划测试 在任何类型的测试中,编写测试计划都是必要的步骤。有条不紊、计划周密的计划,可以确保在执行中能够有章可循。在计划测试阶段需要输出性能测试计划,而计划阶段需要经历如下几个环节,如下图所示: ...
Notes Twenty one days-渗透攻击-红队-权限提升
5.5 powershell一条命令行进行内网扫描(dayu-Eighteenth Day) 5.6 内网信息收集之内网代理 六、权限提升 6.1 操作系统提权 6.
1.1
Linux 6.
1.1
.1 Linux提权-依赖exp 6.
1.1
.2 Sudo漏洞分析 (CVE-2019-14287) 6.
1.1
.3...
菜鸟学习初级教程-----强烈推荐(看完后成黑客拉)
分组密码是将明文按一定的位
长
分组,明文组经过加密运算得到密文组,密文组 经过解密运算 (加密运算的逆运算),还原成明文组。 序列密码是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产 生大量...
MS-SQL Server
34,591
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章