Я работаю над приложением, использующим delphi 7
в качестве внешнего интерфейса и postgres 9.0
в качестве внутреннего.
Мне нужно загрузить изображения на сервер, поэтому я использую \lo_import
и \lo_export
для вставки изображений на сервер и получения изображений с сервера.
Я столкнулся с проблемой, когда необходимо LASTOID
после \lo_import
, поэтому я могу использовать OID для обновления строки в моей таблице, но я не могу установить правильный синтаксис в windows
UPDATE fishes
SET fishesimages=17755; -- <--last OID
WHERE fishes='0A';
Вот мой вопрос на stackoverflow.com . Я получил ответ, но сценарий - это сценарий оболочки Linux. Я не могу запустить его в 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 fishesimages = :LASTOID
WHERE fishes = '04';
EOF
и
echo "\lo_import '/path/to/my/file/zzz4.jpg' \\\\ UPDATE species SET fishesimages = :LASTOID WHERE fishes = '04';" | \
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 myDB-U myDB_admin -c " update species SET fishesimages = :LASTOID WHERE fishes='24'"
Но я получаю Syntax error at or near ":"
Может кто-нибудь сказать, как его преобразовать в Windows Comnad?