我正在使用PostgreSQL 9.0的Delphi 7应用程序。我有一些图像作为OID
存储在数据库中,并且应用程序远程连接到PostgreSQL。PostgreSQL,存储过程的lo_export查询
我使用这个查询:
"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;
我已经在互联网上搜索,但不能计算出,如果转换甚至有可能。 任何人都可以告诉我如何将上述查询转换为存储过程?
如果这些照片是不是我不能添加'psql'标签莫名其妙 – PresleyDias
* *真大,那么使用'bytea'可能是一个更好的办法 –
你可以更新你的Delphi的PostgreSQL驱动程序名称/版本的帖子?每个驱动程序都有自己的方式来获取大对象和二进制数据。 –