Q&A

  • memo 컴포넌트에서 sql문사용에 대한 질문입니다.
     person.SQL.Add('where 주민등록번호 = :N0');

     person.ParamByName('N1').AsString := Edit1.Text;
     person.ParamByName('N2').AsString := Edit2.Text;
     person.ParamByName('N3').AsString := combobox1.Text;
     person.ParamByName('N4').AsString := Edit3.Text;
     person.ParamByName('N5').AsString := Edit4.Text;
     ~중간생략~
     person.ParamByName('N44').AsString := Edit40.Text;
     person.ParamByName('N45').AsString := Edit30.Text;
     person.ParamByName('N46').AsString := combobox4.Text;
     person.ParamByName('N47').AsString := memo1.lines.Text;
     person.ParamByName('N0').AsString := ju_no;
     person.ExecSQL;
에서 메모라인에서 AsString에서 자꾸 sql 에러가 납니다.

Project person.exe raised exception class EDBEengineError with message 'General SQL error.
[Microdoft][ODBC Microsoft Access 드라이버]잘못된 설명자 인덱스 입니다.
[Microdoft][ODBC Microsoft Access 드라이버]잘못된 정밀도 값입니다.'.Process stoppped.
Use step or Run to continue.

이게 에러내용입니다.
필드 내용을 짧게 입력하면 에러없이 처리가 되는데 길게 입력할시에는 위와 같은 에러가 발생합니다.

디비는 MS Access를 사용하고 있고 메모에 해당하는 필드 형식은 메모로 되어 있습니다.

고수님들의 조언 부탁드립니다.
그리고 군부대이다 보니 빨리 처리를 해야 되기 때문에 아시는분은 꼭 답변 바랍니다.
이상 허접 군바이 프로그램병이었습니다...ㅡㅡ
3  COMMENTS
  • Profile
    홍성락 2002.08.15 02:34
    hsr/////////////////////////////////////////////////////////////
    Memo에서 읽어 올때는 엔터값 줄바꾸기(#$D#$A)값이 삽입되거든요
    이 특수문자를 제거해보세요.
    procedure TForm1.Button1Click(Sender: TObject);
    var
      a,b,c : string;
    begin
      a:= StringReplace(Memo1.Text, #$D#$A, '', [rfReplaceAll]);
      b:= Edit1.Text;
      c:=a+b;
      showmessage(c);
    end;
  • Profile
    아폴론 2002.08.15 01:59
    person.ParamByName('N47').AsString := memo1.lines.Text;

    ....AsMemo := memo1.text로 바꿔보셈..
  • Profile
    이성수 2002.08.15 03:05

    감사합니다.. 덕분에 문제 해결입니다. 감사..^^*