ADODB를 사용하여 SQL Server의 이미지 열에 문서를 저장하는 기존 Classic ASP 응용 프로그램이 있습니다. 우리가 실행하고있는 문제는 대부분의 파일에서 1 바이트가 손실된다는 것입니다. 우리는 하나의 파일이 바이트를 잃지 않기 때문에 잠재적으로 크기와 관련이 있다고 생각합니다.SQL Server 이미지 열에 데이터를 저장할 때 한 바이트가 손실 됨
는 지금까지 우리는
- 정확한 바이트 길이가 ADODB CreateParameter 호출에 전달되고 있음을 검증 ..을.
- SQL Server BCP 도구를 사용하여 추출이 아닌 SQL Server에서 파일이 손상되었는지 확인합니다. BCP로 파일을 추출 할 때 바이트가 누락되어 있고 -w 매개 변수를 사용했습니다.
다음에 시도 할 수있는 것에 대해 조언이있는 사람이 있습니까?
업데이트 :
우리는 좀 더 연구를하고 그 바이트가 ADODB에서 사라지고 나타납니다. 우리는 이렇게 ..
cmd.Parameters.Append cmd.CreateParameter ("SupportDocImage", adLongVarBinary에, adParamInput, lSize, sFilePath)
lSize는 123,139 것와 sFilePath가 바이너리 데이터 인 경우 (예. 잘못된 명명)
실제로 이것은 저장 프로 시저를 호출하고 저장 프로 시저에서 DATALENGTH (@Variable)를 수행하고 대신 123,138을 얻습니다.
또한 우리가 본 바로는 잃어버린 마지막 바이트입니다.
특정 바이트? 항상 마지막이야? – UnhandledExcepSean
항상 마지막 바이트 인 것으로 보이지만 pdf로 확인하겠습니다. –
SQL 문은 어떻게 생겼습니까? 삽입 직후에 데이터 길이 ('select data_length (col)')를 선택하여 나중에 데이터를 수정하는 것이 없도록하십시오. – usr