Q&A

  • 이미지를 삽입하니까 에러가 나네요... help me~~~
에러 메시지 // Project DaeA_DMS.exe raised exception class EDBEngineError with message 'Non-blob column in table required to perform operation,'.Process stopped. Use Step or Run to continue. // 가 발생합니다.



엑세스2000 과 델파이4 를 이용하여 DB프로그램을 하나 작성중인데, 테이블 중 부품테이블에 부품명과 규격, 단가...등과 부품사진이 들어가는데, 부품사진을 엑세스에서 테이블 작성시 OLE개체로 해주고 DBImage에 연결을 시키고 프로그램을 실행시키면, 기존에 있는 레코드의 부품사진들은 나타나고 또 편집.수정시에도 아무이상이 없는데,

새로운 레코드를 추가, 삽입을 하면 위의 에러메시지가 뜨면서 프로그램이 죽어버립니다. 그런데 다시 프로그램을 실행시켜보면 부품사진은 레코드에 저장이 되어 있습니다.

왜 이런 현상을 일어나는지 도무지 모르겠군요.

벌써 며칠째 담배만 작살내며 밤을 지세우고 있는데, 정말 미치겠습니다.

이틀뒤에 프로그램 가져가야 하는데 죽겠습니다.

제발 고수님들 Help me! please~~!!!!!



다들 바다네 산이네 놀러가는데 하루 웬 종일 방콕하며 컴하고 맞짱뜨고 있는 불쌍한 중생이... 근데 아무래도 질꺼 같아요. ^^

3  COMMENTS
  • Profile
    타락천사 2000.08.07 19:02
    안녕하세여.. 타락임다..^^



    아시겠지만, 에러메세지 내용은 "Blob 컬럼이 아니어서 그림을 넣을수 없다"는 내용입니



    다. 근데, 에러는 나두 필드 내용을 보면 들어가있다는거 아니에여? 맞져?



    제 짐작이지만, 필드 읽고 쓸때 타입설정을 안했거나, 타입설정이 틀렸겠져..



    필드 읽고 쓸때 AsBlob 가 안붙었으면 붙여주구여, 붙었으면 잘 붙었나 보세여..



    참고로, As 연산자는 Exception을 발생시킵니다...



    그래두 예외가 발생하면 DBEngingError 로 잡아서 없애세여..



    글면 유저가 보기엔 에러가 떻는지 모르자나여...^^;;;





    잘 되서 컴퓨터랑 싸워서 이기길 바랍니다..



    컴퓨터가 자꾸 앵기면, 컴퓨터 뒤편의 모든 선을 잘라버리세여..--+



    타락천사......^_____________^

  • Profile
    webcome 2000.08.08 07:56
    먼저 답변 고맙습니다.



    그런데, 아직 해결을 못했네요.



    천사님 말대로 첨에 저도 asblob 라고 해주었는데 "asblob가 선언이 되어 있지 않다" 않다는 에러메세지가 나와서 field 속성을 보니 asbolb라는 것이 안보여 그냥



    table1.append;

    :

    table1.fieldbyname('photo').asstring := dbimage1.field.asstring;

    :

    이라고 해 주었습니다.

    저도 asstring이 잘못사용된거지 싶은데 아무리 봐도 asblob는 안보이고 해서

    다른것도 해보았는데 전부 에러가 나는군요 그래서...

    그라고 에러가 날려면 edit 할때도 에러가 나야지 왜 또 기존에 있는 데이타를 수정을 할때에는 아무런 에러 없이 수정을 될까요... ??? ㅠㅠㅠ



    asblob를 사용할려면 전에 뭘 선언을 해줘야 하나요?

    아님 위의 것처럼 저런 식으로 하면 안되는 건가요??

    다시 한번더 부탁 드리겠습니다.



    날씨가 또 더워지는데 몸조심하시고

    시원한 날이 되시길....





  • Profile
    타락천사 2000.08.08 19:16
    안녕하세여. 타락임다..^^



    지가 성의없이 답변했네여...



    1. 레코드에 저장된 그림파일을 TImage 컴포넌트에 보이기



    Image1.Picture.Assign(Table1.FieldByName("BMP"));



    2. TImage 컴포넌트에 보여지는 그림을 테이블에 저장하기



    Table1.Edit;

    Table1.FieldByName("BMP").Assign(Image1.Picture);

    Table1.Post;





    참고로 테스트 해보진 않았지만, Blob필드를 가지고 있는 테이블 오픈하면



    커서가 첫번째 레코드에 위치 하지 않기도 한다구 하더군여..



    즐푸하세여..



    타락천사......