我正在使用Postgres 9.0,我有一個應用程序,我需要將圖像插入到遠程server
。於是我就用:PostgeSQL lo_import以及如何將生成的OID導入UPDATE命令?
"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d myDB -U my_admin -c "\lo_import 'C://im/zzz4.jpg'";
其中
192.168.1.12
是服務器系統
5432
的IP地址是端口號
myDB
的服務器數據庫名稱
my_admin
是用戶名
"\lo_import 'C://im/zzz4.jpg'"
是被觸發的查詢。
圖像已被插入,我需要在一個表中更新行這樣的數據庫後:
UPDATE species
SET speciesimages=17755; -- OID from previous command.. how to get the OID ??
WHERE species='ACCOAA';
所以我的問題是:我怎麼得到OID
後返回psql中的\lo_import
?
我試圖運行在Postgres的\lo_import 'C://im/zzz4.jpg'
,但我得到一個錯誤:
ERROR: syntax error at or near ""\lo_import 'C://im/zzz4.jpg'""
LINE 1: "\lo_import 'C://im/zzz4.jpg'"
我也試過這樣:
update species
set speciesimages=\lo_import 'C://im/zzz4.jpg'
where species='ACAAC04';
但我得到這個錯誤:
ERROR: syntax error at or near "\"
LINE 2: set speciesimages=\lo_import 'C://im/zzz4.jpg'
^
什麼是應用程序的語言?在大多數語言中,有一些功能可以執行客戶端lo_import,這比在單獨的進程中啓動psql並獲取OID更簡單。 – 2012-03-20 13:42:35
@DanielVérité:iam使用'delphi 7'作爲前端 – PresleyDias 2012-03-21 04:18:47
Delphi有幾個PG驅動程序。如果使用[pgdac](http://www.devart.com/pgdac/),您可能會看[此代碼示例](http://www.devart.com/forums/viewtopic.php?t=14083)。如果使用[zeoslib](http://zeos.firmos.at/),顯然TZPostgreSQLBlob對象可能會實現該功能。 – 2012-03-21 14:58:21