2012-03-21 2 views
0

delphi 7을 프론트 엔드로 사용하고 postgres 9.0을 백엔드로 사용하는 응용 프로그램에서 작업하고 있습니다.Postgres 9.0 linux 명령에서 windows 명령으로 변환

이미지를 서버에 업로드해야 서버에 이미지를 삽입하고 서버에서 이미지를 가져 오는 데 \lo_import\lo_export을 사용합니다.

나는 그래서 난 내 테이블의 행을 업데이트 OID를 사용할 수있는 \lo_importLASTOID을 필요로하는 문제를 건너했지만

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

가 난 창에 올바른 구문을 설정 캔트 내 stackoverflow.com에 관한 질문. 내가 대답을 가지고 있지만 스크립트는 리눅스 쉘 스크립트입니다. 나는

바로 다음
"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'" 

하지만 일을 내가 창에서 이것을 시도 윈도우

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 commnad로 변환하는 방법을 알려 줄 사람이 있습니까? 난 당신이 의미 생각 alot..but

답변

2

그냥 (말 import.psql) 파일에서 근무 문제 명령

"C:\Program Files\PostgreSQL\9.0\bin\psql.exe" -h 192.168.1.12 -p 5432 -d myDB -U my_admin -f import.psql 
+0

+ 1이 아닌

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

, 헤이 , 덕분에 명령을 넣어 '.sql'이 아니고'.psql'이 아니기 때문에 업데이트 할 수 있습니다. – PresleyDias

+0

@PresleyDias는'.psql'을 의미합니다. 파일 확장자는 프로그램에 중요하지 않지만 예상되는 내용을 알려주는 방법입니다. 이 파일에는 SQL과 psql-specic 지시문이 혼합되어 있습니다. '.sql'이라고 부르는 것은 작은 거짓말 일 것입니다. 사실 SQL + psql의 이러한 혼합은 exacatly 왜 하나의'-c'에서 양쪽 모두를 낼 수 없었습니다. [command는 서버가 완벽하게 구문 분석 할 수있는 명령 문자열 (즉, psql 특정 기능을 포함하지 않음)이거나 하나의 백 슬래시 명령이어야합니다. 따라서 SQL과 psql 메타 - 명령을 혼합 할 수 없습니다. ] (http://www.postgresql.org/docs/current/static/app-psql.html) – dbenhur

관련 문제