免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1947 | 回复: 7
打印 上一主题 下一主题

求助 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-09 18:23 |只看该作者 |倒序浏览

在pgSQL里建库要存储图像用哪一个数据类型????
急,盼复!!

论坛徽章:
0
2 [报告]
发表于 2004-08-09 19:00 |只看该作者

求助

bytea

论坛徽章:
0
3 [报告]
发表于 2004-08-10 09:09 |只看该作者

求助

我用的是EMS PostgreSQL Manager2的客户端,新建一个字段,设为bytea 类型,我的意图是往里存储图像,现在的问题是不知道怎么往里插入添加数据???

论坛徽章:
0
4 [报告]
发表于 2004-08-10 09:23 |只看该作者

求助

找到一个例子
CREATE TABLE image (
    name            text,
    raster          oid
);

--写入二进制数据
INSERT INTO image (name, raster)
    VALUES ('beautiful image', lo_import('c:/1.bmp'));

--输出二进制数据
SELECT lo_export(image.raster, 'c:/2.bmp') FROM image
    WHERE name = 'beautiful image';

论坛徽章:
0
5 [报告]
发表于 2004-08-10 17:35 |只看该作者

求助

楼上的骑士,好!你的例子中的 oid 数据类型PostgreSQL 7.5devel 文档中找不到,但在我的EMS PostgreSQL Manager2的客户端中可以选择,是不是它们等同?
还有,例子中也不是真真正正存储图像,而是存储图像的地址,在插入时导入,在查询时导出。我的意思是在数据库里把图像作为一项存上,像别的数据库那样,例如Interbase 就可以实现这样的功能!

论坛徽章:
0
6 [报告]
发表于 2004-08-10 22:38 |只看该作者

求助

用bytea存储大对象,你需要自己书写一些代码读取大对象的数据,
然后逃逸,然后用insert语句插入数据库中。
lo_系列函数已经不再建议使用了。

ems 的客户端可能不能做这件事情吧。(没用过,不敢肯定

论坛徽章:
0
7 [报告]
发表于 2004-08-11 12:26 |只看该作者

求助

麻烦举个例子,具体怎么写代码??

论坛徽章:
0
8 [报告]
发表于 2004-08-11 21:29 |只看该作者

求助

嗯。。。我在pgsqldb.org的论坛上举过例子,说白了就是:
len=fread(buf, 1, file_len, your_file);
buf2=PQescapebytea (buf,len);
sprintf(query, "insert into table(byteacolumn) values(%s)", buf2);
PQexec(query);

这个样子。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP