【发布时间】:2012-05-18 12:06:36
【问题描述】:
我正在开发一个使用 PostgreSQL 9.0 的 Delphi 7 应用程序。我有一些图像以OID 的形式存储在数据库中,应用程序远程连接到 PostgreSQL。
我正在使用这个查询:
"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d MyDB -U myDB_admin -c "\lo_export 16848379 'C://leeImage.jpeg'"
并在表单上显示图像。这工作正常,但执行和显示图像大约需要 1 秒左右。
所以我试图将查询转换为这样的存储过程:
CREATE OR REPLACE FUNCTION GET_FISHIMAGE(path TEXT ,Host TEXT,DatabaseName TEXT,userName TEXT,outputpath TEXT) RETURNS text AS $$
BEGIN
//perform this..!!!
//"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d myDB -U myDB_admin -c "\lo_export 16848379 'C://leeImage.jpeg'"
END;
$$ LANGUAGE plpgsql;
我在 Internet 上进行了搜索,但无法确定是否可以进行转换。 谁能告诉我如何将上述查询转换为存储过程?
【问题讨论】:
-
我无法以某种方式添加
psql标签 -
如果这些图片不是真的很大,那么使用
bytea可能是更好的方法 -
你能用你的 Delphi PostgreSQL 驱动程序的名称/版本更新你的帖子吗?每个驱动程序都有自己的方式来获取大型对象和二进制数据。
标签: postgresql delphi stored-procedures plpgsql psql