Я работаю над приложением, которое будет использоваться delphi 7
как front-end, так postgres 9.0
и back-end.
Мне нужно загрузить изображения на сервер, поэтому я использую \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 Commanda?
решение1
Я получил этот ответ из своего вопроса на stackoverflowpostgres-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