Estoy trabajando en una aplicación que se utiliza delphi 7
como front-end y postgres 9.0
back-end.
Tengo que cargar imágenes en el servidor, así que uso \lo_import
y \lo_export
para insertar imágenes en el servidor y obtenerlas del servidor.
Me encontré con un problema donde se necesita LASTOID
después de a, \lo_import
así que puedo usar el OID para actualizar una fila en mi tabla, pero no puedo configurar la sintaxis correcta en Windows.
aquí está mi pregunta sobrestackoverflow.com... tengo la respuesta pero el script está en el comando sheel de Linux ... no puedo ejecutarlo en 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
y
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
He probado esto en 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'";
entonces inmediatamente (programáticamente) estoy haciendo
"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'"
pero lo entiendoSyntax error at or near ":"
¿Alguien puede decirme cómo convertirlo al comando de Windows?
Respuesta1
Recibí esta respuesta de mi pregunta sobre stackoverflow.postgres-9-0-comando-linux-a-comando-conversión-de-windows
Simplemente coloque los comandos en un archivo (digamos import.psql)
-- contents of import.psql
\lo_import '/path/to/my/file/zzz4.jpg'
UPDATE species
SET speciesimages = :LASTOID
WHERE species = 'ACAAC04';
luego emite el comando
"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d myDB -U my_admin -f import.psql