Q&A

  • 다시 질문드립니다(jpg와 bmp)제발..
제가 질문을 좀 난해하게 드려서 다시드립니다.

참고로 DBImage를 사용하진 않습니다.

이전에 답변주신 분께 감사드리고 잘 이해가 가질 않아서 다시 질문하오니

양해바라구여 잘 못알아 들어서 죄송합니다.



기존의 서버에 사진테이블이라는게 있습니다. 그안엔 사진(jpg)과 사인(bmp)이

들어있지요.

이것을 새로운 서버로 이관 시키는 작업중입니다.



그런데 jpg인지 bmp인지 구분이 되지않아서 조언을 받고자 글을 올렸습니다.



기존 서버의 테이블에 들어있는 데이타를 select 해서 사진을 제외한 데이타들을

화면상에 보여주고(Query에서 사진도 물론 select해옵니다. 사진을 보여줄 필요가

없어서 안보여줌)



실행이란 버튼을 누르면 새로운 서버의 테이블에 루프를 돌면서 필요한

데이타들을 추출해서 Insert하는데,

그림파일은 TBlobField을 사용해서 저장합니다.



그런데 문제는 jpg이면 어떤 작업을 해줘야하기에 둘중 하나를 구분할 수 있으면

if else 문을 써서 어떠한 작업을 해주려하는데 조언좀 부탁드립니다.

예제를 써주시면 고맙구여^^(참고로 이 테이블엔 jpg와 bmp만 저장되어있습니다.)

꼭좀 부탁드립니다요~









1  COMMENTS
  • Profile
    innover 2001.12.20 21:31
    이렇게 해보세요.

    단순히 구분만 하는것이라면 이렇게 하는게 속도나 메모리 사용면에서 괜찮을 것입니다.

    Blob를 메모리스트림으로 저장한 후에 앞의 헤더부분을 읽어서 구분을 하는것이죠.

    시험은 안해봐서 작동할지 확신은 못하겠지만 이런 식으로 하시면 됩니다.

    그럼...



    var

    MS: TMemoryStream;

    begin

    MS := TMemoryStream.Create;

    try

    BlobField.SaveToStream(MS);

    if PCardinal(MS.Memory)^ = $e0ffd8ff then ShowMessage('jpeg')

    else if PCardinal(MS.Memory)^ = $38464947 then ShowMessage('gif');

    finally

    MS.Free;

    end;

    end;





    빙고 wrote:

    > 제가 질문을 좀 난해하게 드려서 다시드립니다.

    > 참고로 DBImage를 사용하진 않습니다.

    > 이전에 답변주신 분께 감사드리고 잘 이해가 가질 않아서 다시 질문하오니

    > 양해바라구여 잘 못알아 들어서 죄송합니다.

    >

    > 기존의 서버에 사진테이블이라는게 있습니다. 그안엔 사진(jpg)과 사인(bmp)이

    > 들어있지요.

    > 이것을 새로운 서버로 이관 시키는 작업중입니다.

    >

    > 그런데 jpg인지 bmp인지 구분이 되지않아서 조언을 받고자 글을 올렸습니다.

    >

    > 기존 서버의 테이블에 들어있는 데이타를 select 해서 사진을 제외한 데이타들을

    > 화면상에 보여주고(Query에서 사진도 물론 select해옵니다. 사진을 보여줄 필요가

    > 없어서 안보여줌)

    >

    > 실행이란 버튼을 누르면 새로운 서버의 테이블에 루프를 돌면서 필요한

    > 데이타들을 추출해서 Insert하는데,

    > 그림파일은 TBlobField을 사용해서 저장합니다.

    >

    > 그런데 문제는 jpg이면 어떤 작업을 해줘야하기에 둘중 하나를 구분할 수 있으면

    > if else 문을 써서 어떠한 작업을 해주려하는데 조언좀 부탁드립니다.

    > 예제를 써주시면 고맙구여^^(참고로 이 테이블엔 jpg와 bmp만 저장되어있습니다.)

    > 꼭좀 부탁드립니다요~

    >

    >

    >

    >