如何把文件传入mysql中的blob字段中?(100分)

  • 主题发起人 主题发起人 cute
  • 开始时间 开始时间
C

cute

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是winzeos控件,想把文件传入 linux服务器中mysql数据库blob字段中。
如何使用loadfromfile语句?
mysql中的blob字段属性应选用哪个blob。是否可列一下各个blob的主要用途。

 
我自已搞定了。原来是和interbase使用方法是一样。
只不过是改了小小
(mysqltable1.FieldByName('image2') as TBlobfield).loadfromfile('d:/1.bmp');
这样的格式编写
也可以用loadfromstream方法。
结束这个讨论。
 
不过mysql的效率比较低,特别是你的blob比较大的时候。呵呵,
 
又有问题啦,我用上述的方法是可以把文件上传到服务器中,
用mysqltable1.post;数据还是好的,但经过mysqltabel1.refresh;
之后,数据就出现变形。图象变形,还会掉失数据。
有谁可以解决?请大家继续讨论。
 
有没有这方面的富翁呀?
 
是分数不够吗?还是这题太难了?
分不够的还可以加。

 
>>不过mysql的效率比较低,特别是你的blob比较大的时候。呵呵,
的确,我有同感。我已经放弃用blob,现在只在mysql中存路径名,根据路径名调用存在
服务器的目录blob文件。既快又方便。
不过你可以试试
去掉MYSQL的数据包大小限制,在一般情况下 MYSQL 小于1 MB的数据包.
你必须用以下参数重启你的MYSQL
/usr/local/bin/safe_mysqld -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=24M
另外,winzeos控件是怎么连linux上的mysql的,用odbc吗?
 
winzeos控件是使用了libmysql.dll文件,直接与linux中的mysql联接,比ODBC
好用。它主要是在属性中输入
1.host(即是主机名或者是IP都行)
2.login(即是你的用户名,应该是mysql用户名)
3.password(即是你的mysql登录password)
4.database(即是你的mysql的databse名)
5.connected:=true;(数据库即可连接上)
你可用其的Tmysqltable1或Tmysqlquery1可以看到其的字段,和使用table一样。
速度很快。
to:liangliang
"我已经放弃用blob,现在只在mysql中存路径名,根据路径名调用存在
服务器的目录blob文件。既快又方便。"
这是基于linux下mysql操作吗?,你是怎样实现根据文件名从linux下取得相应文件。
或者你现在有什么好的解决方法,(使用什么操作系统下的数据库?)
什么方法速度才快?
 
这个问题不是热点吗?mysql+linux不是很好的组合吗?
还有高手吗?
 
>>这是基于linux下mysql操作吗?,你是怎样实现根据文件名从linux下取得相应文件。
是基于linux下mysql,我的作法是,作个上传程序,将blob文件拷贝服务器制定目录,并更
名为'primarykey.extentname'(primarykey为该条记录的关键字,如id号)同时更新数据库,
将该条记录的blob文件名改为'primarykey.extentname'。用时可路径名+'primarykey.extentname'
取得该文件。
你用blob是用于网页调用吗,该法肯定比从数据库中调用快。
 
你的COPY文件上/下传服务器是用什么方法。是FTP文件上传/下传吗?或是SMB文件复制。
请写出具体的语句。

 
图像变形可能是组件问题。你的zeosdbo版本是几呀?可以下载新的(5.2.2)试一试。
关于文件传输可以用磁盘映射NFS试一试。
建议你用PostGreSQL.
 
to KERRIGAN
我现在就去DOWN,试下,请问你一声,你有没用过。
 
数据上下传要做转换,长字段数据传给MySQL必须进行转换,
查一下MySQL的说明书
 
我很早以前用Mysql,现在早已改用PostGreSQL.
 
请尽快结束你的贴子,否则我可要痛下杀手了^-^
 
接受答案了.
 
后退
顶部