我正在開發一個用作delphi 7
前端和postgres 9.0
後端的應用程式。
我必須將圖像上傳到伺服器,因此我使用\lo_import
和\lo_export
在伺服器上插入圖像並從伺服器獲取圖像。
我遇到了一個問題,需要LASTOID
a 之後,\lo_import
以便我可以使用 OID 更新表中的行,但我無法在 Windows 中設定正確的語法
這是我的問題stackoverflow.com..我已經得到答案,但腳本位於 linux sheel 命令中..我無法在 Windows 中運行它
psql -h 192.168.1.12 -p 5432 -d myDB -U my_admin << EOF
\lo_import '/path/to/my/file/zzz4.jpg'
UPDATE species
SET speciesimages = :LASTOID
WHERE species = 'ACAAC04';
EOF
和
echo "\lo_import '/path/to/my/file/zzz4.jpg' \\\\ UPDATE species SET speciesimages = :LASTOID WHERE species = 'ACAAC04';" | \
psql -h 192.168.1.12 -p 5432 -d myDB -U my_admin
我已經在Windows中嘗試過這個
"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'";
然後立即(以編程方式)我在做
"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d nansis -U nansis_admin -c " update species SET speciesimages = :LASTOID WHERE species='ACAAC24'"
但我明白了Syntax error at or near ":"
任何人都可以告訴我如何將其轉換為 Windows 命令嗎?
答案1
我從 stackoverflow 上的問題中得到了這個答案postgres-9-0-linux-指令到windows-指令轉換
只需將命令放入檔案中(例如 import.psql)
-- contents of import.psql
\lo_import '/path/to/my/file/zzz4.jpg'
UPDATE species
SET speciesimages = :LASTOID
WHERE species = 'ACAAC04';
然後發出命令
"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d myDB -U my_admin -f import.psql