Q&A

  • 파라독스 긴 메모 필드 읽기
파라독스 디비를 사용하던 중에 데이터를 메모 필드에 저장하게 되었습니다.

저장시(Insert)에 FieldByName('data').AsMemo 로 저장을 했습니다.

DB-Explorer로 들어간 데이터를 살펴봤는데, 아무 이상없이 잘 수행되었습니다.



그런데, 문제는 데이터의 입력은 잘 되었는데... 읽어오는데 문제가 발생했습니다.

데이터가 255가 넘어가면, 읽어오지를 못하더군요...

게시판에서 관련된 자료를 찾아 보려고 했도, 비슷한 질문을 찾을 수가 없어서

이렇게 질문 드립니다.



고수분들의 도움 바랍니다.

그럼, 아래는 소스 첨부입니다.



======================================================================



저장(Insert)







query:=TQuery.Create(nil);

query.DatabaseName:=('form_data');



...

query.ParamByName('form_data').AsMemo:=macro.form_data;

query.ExecSQL;

...



query.Close;

query.Free





읽기(Select)

query:=TQuery.Create(nil);

query.DatabaseName:=('form_data');





...

memo1.Text:=query.FieldByName('data').AsString;

...



query.Close;

query.Free





참, 그래서 AsString에 문제가 있는건 아닌가 해서 TDBMemo를 사용해 보기도

했지만, 결과는 마찬가지더군요...



2  COMMENTS
  • Profile
    major 2001.02.22 00:07
    한원희 wrote:

    > 파라독스 디비를 사용하던 중에 데이터를 메모 필드에 저장하게 되었습니다.

    > 저장시(Insert)에 FieldByName('data').AsMemo 로 저장을 했습니다.

    > DB-Explorer로 들어간 데이터를 살펴봤는데, 아무 이상없이 잘 수행되었습니다.

    >

    > 그런데, 문제는 데이터의 입력은 잘 되었는데... 읽어오는데 문제가 발생했습니다.

    > 데이터가 255가 넘어가면, 읽어오지를 못하더군요...

    > 게시판에서 관련된 자료를 찾아 보려고 했도, 비슷한 질문을 찾을 수가 없어서

    > 이렇게 질문 드립니다.

    >

    > 고수분들의 도움 바랍니다.

    > 그럼, 아래는 소스 첨부입니다.

    >

    > ======================================================================

    >

    > 저장(Insert)

    >

    >

    >

    > query:=TQuery.Create(nil);

    > query.DatabaseName:=('form_data');

    >

    > ...

    > query.ParamByName('form_data').AsMemo:=macro.form_data;

    > query.ExecSQL;

    > ...

    >

    > query.Close;

    > query.Free

    >

    >

    > 읽기(Select)

    > query:=TQuery.Create(nil);

    > query.DatabaseName:=('form_data');

    >

    >

    > ...

    > memo1.Text:=query.FieldByName('data').AsString;

    > ...

    >

    > query.Close;

    > query.Free

    >

    >

    > 참, 그래서 AsString에 문제가 있는건 아닌가 해서 TDBMemo를 사용해 보기도

    > 했지만, 결과는 마찬가지더군요...



    >



    일단 답변이 될지는 모르겠지만..

    프로젝트 옵션에서 보시면 Compiler에서 huge strings이라는 것이 있을 것입니다.

    거기에 체크가 안 되어 있으면 체크를 하시면 될 것 같은데요.

    String을 따로 Short로 쓰셔야 된다면 다른 방법을 알아 보셔야 할 것 같구여.

    그럼.















  • Profile
    한원희 2001.02.22 02:34
    major wrote:

    >

    > 일단 답변이 될지는 모르겠지만..

    > 프로젝트 옵션에서 보시면 Compiler에서 huge strings이라는 것이 있을 것입니다.

    > 거기에 체크가 안 되어 있으면 체크를 하시면 될 것 같은데요.

    > String을 따로 Short로 쓰셔야 된다면 다른 방법을 알아 보셔야 할 것 같구여.

    > 그럼.

    >

    >



    해결했습니다.



    다른 문제가 아니라, 해당 테이블의 데이터가 자주 삭제되고, 새로 갱신되는 터라

    완전히 삭제되지 않은 데이터들때문에 발생한 문제였습니다.

    테이블을 새로 pack 시키고 동작을 시키니까 아무문제가 없었습니다.



    답변 주셔서 감사합니다.



서버에 요청 중입니다. 잠시만 기다려 주십시오...