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 시키고 동작을 시키니까 아무문제가 없었습니다.



    답변 주셔서 감사합니다.