DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: pesamo
今日帖子: 10
在线用户: 7
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 xiangsong (天下第一菜) ★☆☆☆☆ -
盒子活跃会员
2004/5/13 8:12:30
标题:
odbc连接对blob数据类型大小的限制? 浏览:1736
加入我的收藏
楼主: 用扫描仪扫描图片并存入数据库,用odbc连接,可保存时odbc对blob数据类型的大小限制在32K以内,大于32K的图片只存进一部分,请问怎么解决?我找来找去,不知道在那里改动这个限制?
请各们大虾仗义相助。谢谢。
----------------------------------------------
天下第一菜

那一天我在街头踯躅
你在秋天里独自跳舞
回首落满悲欢的来时路
那覆水难收的赌注
我们用青春一起作证
我们曾遇见到幸福
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2004/5/13 8:23:56
1楼: 我曾遇到过用BDE的Query存取Blob字段时在从数据库读出时最多只能读32K的情况(写入时正常),后来换用Table就解决了;
不知道你是否用Query来存取,如果是,那改用Table试试吧。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 xiangsong (天下第一菜) ★☆☆☆☆ -
盒子活跃会员
2004/5/13 9:19:34
2楼: 谢谢iamdream的答复,我用table试了一下,还是不行呀,根本就存不进去,图片文件长度如果超过了32K,post的时候就显示Invalid BLOB Length。
我知道在PB中用ODBC连接读写blob类型的文件时,可以在一个ini文件中改改一个设定,这里怎么解决,还请各位大虾费心。谢谢。
----------------------------------------------
天下第一菜

那一天我在街头踯躅
你在秋天里独自跳舞
回首落满悲欢的来时路
那覆水难收的赌注
我们用青春一起作证
我们曾遇见到幸福
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2004/5/13 10:09:26
3楼: 你用的是什么数据库?我用SQL Server,Interbase数据库都是可以的。
此外,最好将相关代码贴出来让大家帮你看看。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 xiangsong (天下第一菜) ★☆☆☆☆ -
盒子活跃会员
2004/5/13 10:24:16
4楼: 我用的是sql server 2000 用odbc数据源连接,我想代码应该是没有问题的,因为可以保存,而且如果选择的图片小于32K,显示的时候也很正常。当图片大于32K的时候,也可以保存,只是用dbimage显示的时候,发现图片缺了一部分。肯定就是ODBC连接的限制了,BLOB数据的长度不能超过32767。关键是怎么改这个ODBC设置,使程序可以存取超过32767长度的数据。

procedure TForm1.BitBtn2Click(Sender: TObject);
var
  str_sql : string;
  bmp :  Tbitmap;
begin
  bmp := Tbitmap.Create;
  try
    bmp.LoadFromFile(opendialog.FileName);
    with query_scan do
    begin
      databasename := database1.DatabaseName;
      close;
      sql.Clear;
      str_sql := 'insert a_img values (:img)';
      sql.Add(str_sql);
      parambyname('img').Assign(bmp);
      execsql;
    end;
    showmessage('OK');    
  finally
    bmp.free;
  end;
end;

谢谢老兄费心。
----------------------------------------------
天下第一菜

那一天我在街头踯躅
你在秋天里独自跳舞
回首落满悲欢的来时路
那覆水难收的赌注
我们用青春一起作证
我们曾遇见到幸福
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2004/5/13 12:21:17
5楼: 不好意思,我试了一下,SQL Server的确不行,不过Interbase是可以的;
解决方法:
你将BDE的Database控件中的Params下的Blob Size改得大一些即可(以K为单位),或者直接到注册表改HKEY_LOCAL_MACHINE\SOFTWARE\Borland\Database Engine\Settings\DRIVERS\MSSQL\DB OPEN\Blob Size键值。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 shaoyy (远洋) ★☆☆☆☆ -
盒子活跃会员
2004/5/13 12:26:50
6楼: 是BDE有限制,在BDE里设一下Blob Size就行了。
----------------------------------------------
www.acreport.com
作者:
男 xiangsong (天下第一菜) ★☆☆☆☆ -
盒子活跃会员
2004/5/13 15:28:30
7楼: 谢谢两位的回复。
我把上面两位说的方法都试过了,还是不行呀,我用的是odbc连接,不是用bde连接的。
注册表也改了,还是不行呀,真是奇怪。
另外,为什么我调用扫描仪把图像存在硬盘上之后,用
    imgscan1.StartScan; //开始扫描
    image1.Picture.loadfromfile(imgscan1.Image);
显示图片的时候会提示
此帖子包含附件:
JPEG 图像
大小:16.6K
----------------------------------------------
天下第一菜

那一天我在街头踯躅
你在秋天里独自跳舞
回首落满悲欢的来时路
那覆水难收的赌注
我们用青春一起作证
我们曾遇见到幸福
作者:
男 xiangsong (天下第一菜) ★☆☆☆☆ -
盒子活跃会员
2004/5/13 15:43:10
8楼: 我把BDE里configuration页内的Drivers\ODBC\SQL SERVER内的BLOB SIZE属性改大了些,这回可以存大于32K的图片了。谢谢两位的答复。谢谢。
可是用image显示扫描仪扫描的图片还是会出上面所说的错误。还得请各位大虾帮忙看看。谢谢。
----------------------------------------------
天下第一菜

那一天我在街头踯躅
你在秋天里独自跳舞
回首落满悲欢的来时路
那覆水难收的赌注
我们用青春一起作证
我们曾遇见到幸福
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2004/5/13 18:21:13
9楼: imgscan1.Image是表示位图的全路径文件名吗?
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 xiangsong (天下第一菜) ★☆☆☆☆ -
盒子活跃会员
2004/5/13 19:08:52
10楼: 是的,我用showmessage(imgscan1.image)显示,这个就是扫进来的位图文件的全路径文件名。
我在设置image1的picture属性时,如果load我扫进来的这个图片,有时可以,有时也会出错。真是奇怪。
----------------------------------------------
天下第一菜

那一天我在街头踯躅
你在秋天里独自跳舞
回首落满悲欢的来时路
那覆水难收的赌注
我们用青春一起作证
我们曾遇见到幸福
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2004/5/14 8:15:39
11楼: 那你用“画图”程序是否能正常打开?最好你发一份图片上来。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 xiangsong (天下第一菜) ★☆☆☆☆ -
盒子活跃会员
2004/5/14 14:51:09
12楼: 谢谢iamdream老兄,我上午把电脑格式化了重新作,所以一直没上网。
可是还是问题依旧。
用画图和acdsee一类的软件能打开,没问题呀,
----------------------------------------------
天下第一菜

那一天我在街头踯躅
你在秋天里独自跳舞
回首落满悲欢的来时路
那覆水难收的赌注
我们用青春一起作证
我们曾遇见到幸福
作者:
男 gjunshan (时尚青云) ★☆☆☆☆ -
普通会员
2004/5/14 17:39:58
13楼: 这个问题我遇到过,换用ADO就肯定没问题了.
----------------------------------------------
-
作者:
男 iamdream (银河恒久远,梦想无止境!) ★☆☆☆☆ -
大贡献会员
2004/5/15 8:22:57
14楼: 那你在Explorer中查看它的属性,看看它是“Windows 3.x 位图(BMP)”,如果不是,那转换一下吧。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
男 xiangsong (天下第一菜) ★☆☆☆☆ -
盒子活跃会员
2004/5/15 8:29:12
15楼: to gjunshan : 我也换了ADO试了试,还是会出错呀。
to iamdream : 在Explorer中看?explorer打不开bmp格式的文件呀。
谢谢两位。
----------------------------------------------
天下第一菜

那一天我在街头踯躅
你在秋天里独自跳舞
回首落满悲欢的来时路
那覆水难收的赌注
我们用青春一起作证
我们曾遇见到幸福
作者:
男 bios (阿贡) ★☆☆☆☆ -
盒子中级会员
2004/5/15 9:40:06
16楼: 字段类型 选binary
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行89.84375毫秒 RSS