2010-03-16 3 views
1

데이터베이스에 파일을 저장하는 방법을 찾으려고합니다. 데이터베이스보다는 파일 시스템에 파일을 저장하는 것이 좋지만, 작업중인 작업은 데이터베이스를 사용하여 이러한 이미지 (파일)를 저장하는 것이 훨씬 더 좋습니다.SQL Server 2008의 저장 프로 시저에 이진 데이터 전달

몇 가지 제약 조건이 있습니다. 저는 관리자가 아니므로 모든 명령을 실행하려면 저장 프로 시저를 만들어야합니다. 지금까지별로 어려움이 없었지만 필자의 삶은 파일 (이미지)을 데이터베이스에 저장할 수있는 방법이 아닙니다.

BULK 명령을 사용하려고하면 "대량로드 문을 사용할 수있는 권한이 없습니다."라는 오류 메시지가 나타납니다. 일괄 유틸리티는 파일을 데이터베이스에 업로드하는 쉬운 방법처럼 보였지만 권한이 없으면 일 라운드를 수행해야합니다.

파일 업로드 입력 유형으로 HTML 양식을 사용하고 PHP로 처리하기로 결정했습니다. PHP는 저장 프로 시저를 호출하고 파일의 내용을 전달합니다. 문제는 이제 매개 변수의 최대 길이가 128 자 밖에 될 수 없다는 것입니다.

이제 완전히 막혔습니다. 대량 명령을 사용할 수있는 권한이 없으며 SP에 전달할 수있는 매개 변수의 최대 길이가 128자인 것으로 보입니다.

나는 이진 문자와 ASCII 문자가 함께 잘 혼합하지 않기 때문에 문제가 실행할 것으로 예상,하지만 난 ... 막 다른 골목에

감사 데이비드 헤이든의 블로그에서

+0

문제는 SO 이미 여러 번 요청 나는했습니다 –

+0

을 지금 며칠 동안이 문제에 갇혀 있었고 나는 해답을 둘러 보았고 또 다른 비슷한 질문을했습니다. –

답변

0

Here is an example I've found을 해요.

그것은 교류 # 예,하지만 단계는 PHP에서 비슷해야합니다

  1. 바이트 배열
  2. 서버 일반적으로
+0

예를 들어 주셔서 감사합니다. 이 모든 혼란을 파악하기 위해 회의에 참석할 예정입니다. 당장은 제대로 작동 할 수있는 권한이 없다고 생각합니다. –

+0

이 답변에는 더 자세한 내용이 있었음에 틀림 없습니다 - 링크 된 기사가 사라졌습니다. – Paul

1

에서 동적 TSQL을 실행에 업로드 된 파일을 변환, 우리는 SQL에서 이진 데이터를 전달하지 않습니다. 파일을 서버에 업로드 한 다음 이미지를 서버에서 데이터베이스로로드합니다.

로드 파일에서 데이터베이스로 이미지 :

UPDATE images 
SET image = LOAD_FILE('images/myimage.jpg') 
WHERE image_id = 1234 

파일로에서 이미지를 다시 가져 오기 : ...

SELECT image 
INTO DUMPFILE 'images/myimage.jpg' 
FROM images 
WHERE image_id = 1234 
관련 문제