Postgres 9.0 linux kommando til windows kommando konvertering

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg arbejder på en applikation, der bruger delphi 7 som frontend og postgres 9.0 som bagenden.


Jeg skal uploade billeder til serveren, så jeg bruger lo\_import og lo\_export til at indsætte billeder på serveren og hente billederne fra serveren.


Jeg var kommet over et problem, hvor der er brug for LASTOID efter en lo\_import, så jeg kan bruge OID'en til at opdatere en række i mit bord, men jeg kan ikke sætte syntaksen korrekt i windows


UPDATE fishes
SET    fishesimages=17755;  -- <--last OID
WHERE  fishes='0A';


Her er mit spørgsmål om stackoverflow.com. Jeg har svaret, men scriptet er et Linux shell script. Jeg kan ikke køre det i 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


og


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


Jeg har prøvet dette i Windows


"C:Program FilesPostgreSQL9.0inpsql.exe" -h 192.168.1.12 -p 5432 -d myDB -U my\_admin -c "lo\_import 'C://im/zzz4.jpg'"; 


så straks (programmatisk) jeg gør


"C:Program FilesPostgreSQL9.0inpsql.exe" -h 192.168.1.12 -p 5432 -d myDB-U myDB\_admin -c " update species SET fishesimages = :LASTOID WHERE fishes='24'" 


Men jeg får Syntax error at or near ":"


Kan nogen fortælle mig, hvordan man skjule det til Windows Commnad?

Bedste reference


Bare sæt kommandoerne i en fil (sig import.psql)


-- contents of import.psql
lo\_import '/path/to/my/file/zzz4.jpg'
UPDATE species
SET    speciesimages = :LASTOID
WHERE  species = 'ACAAC04';


end udgave kommando


"C:Program FilesPostgreSQL9.0inpsql.exe" -h 192.168.1.12 -p 5432 -d myDB -U my\_admin -f import.psql