Q&A

  • sql문 이용하여 데이타 삽입시 에러....
DBgrid에 data를 삽입하려 하는데

Project Progect1.exe raised exception class EDBEngindError with

message 'Invalid use of keyword.

Token:insert

Line Number: 3'.Process stoppen.Use Step or Run to continue.

라는 에러가 납니다. coding은 아래에 있고 프로그램은 압축했습니다.

해결 좀 해주세요...



procedure TForm2.DB_Input;

begin

with form1 do

begin

//n, a, n, a, d

query1.ParamByName('N1').asstring := edit1.Text;

query1.ParamByName('N2').asstring := edit2.Text;

query1.ParamByName('N3').asstring := edit3.Text;

query1.ParamByName('N4').asstring := edit4.Text;

query1.ParamByName('N5').asstring := edit5.Text;

end;

end;



procedure TForm2.BitBtn1Click(Sender: TObject);

begin

if (edit1.Text = '') or (edit2.Text = '') or (edit3.Text = '')

or (edit4.Text = '') or (edit5.Text='') then

begin

application.MessageBox('입력을 다시 확인 하세요!','입력오류',MB_OK);

end

else

begin

with form1 do

begin

query1.sql.Add('insert into 만화책');

query1.SQL.Add('(no, name, book, address, date)');

query1.sql.Add('values');

query1.sql.Add('( :N1,');

query1.sql.Add(' :N2,');

query1.sql.Add(' :N3,');

query1.sql.Add(' :N4,');

query1.sql.Add(' :N5)');

DB_Input;

end;

form1.Query1.ExecSQL;<=====이부분에서 error가 납니다. 해결 좀 해주세요

end;



end;





1  COMMENTS
  • Profile
    조복기 1999.07.15 19:02


    안녕하세요..조복기입니다..



    비가 오니까 시원해서 좋네요..

    제생각엔 sql.add만 있고 그전에 clear문장이 없어서 에러가

    난것같기도 하고.. (여러번 수행하면 SQL문이 쌓여서..)



    만약 같은에러가 난다면

    sql문을 변수에 담아두고 한번에 add를 시켜서 실행해보세요..

    그전에 변수값을 디버깅과정을 통해 어떻게 sql문이

    완성되었는지도 확인하시구요..



    그리고 Execsql작업하기전에 Try..Except(예외처리) 시켜주시면

    좋겠죠?...



    좋은하루되세요..





    procedure TForm2.BitBtn1Click(Sender: TObject);

    begin

    if (edit1.Text = '') or (edit2.Text = '') or (edit3.Text = '')

    or (edit4.Text = '') or (edit5.Text='') then

    begin

    application.MessageBox('입력을 다시 확인 하세요!','입력오류',MB_OK);

    exit;

    end;



    with Query1 do

    begin

    if Active then Close;

    SQL.Clear;

    SQL.Add('insert into 만화책');

    SQL.Add('(no, name, book, address, date)');

    SQL.Add('values');

    SQL.Add('( :N1,:N2,:N3,:N4,:N5)');

    ParamByName('N1').asstring := Trim(edit1.Text);

    ParamByName('N2').asstring := Trim(edit2.Text);

    ParamByName('N3').asstring := Trim(edit3.Text);

    ParamByName('N4').asstring := Trim(edit4.Text);

    ParamByName('N5').asstring := Trim(edit5.Text);

    ExecSQL;

    end;

    end;









    배동진 께서 말씀하시기를...

    > DBgrid에 data를 삽입하려 하는데

    > Project Progect1.exe raised exception class EDBEngindError with

    > message 'Invalid use of keyword.

    > Token:insert

    > Line Number: 3'.Process stoppen.Use Step or Run to continue.

    > 라는 에러가 납니다. coding은 아래에 있고 프로그램은 압축했습니다.

    > 해결 좀 해주세요...

    >

    > procedure TForm2.DB_Input;

    > begin

    > with form1 do

    > begin

    > //n, a, n, a, d

    > query1.ParamByName('N1').asstring := edit1.Text;

    > query1.ParamByName('N2').asstring := edit2.Text;

    > query1.ParamByName('N3').asstring := edit3.Text;

    > query1.ParamByName('N4').asstring := edit4.Text;

    > query1.ParamByName('N5').asstring := edit5.Text;

    > end;

    > end;

    >

    > procedure TForm2.BitBtn1Click(Sender: TObject);

    > begin

    > if (edit1.Text = '') or (edit2.Text = '') or (edit3.Text = '')

    > or (edit4.Text = '') or (edit5.Text='') then

    > begin

    > application.MessageBox('입력을 다시 확인 하세요!','입력오류',MB_OK);

    > end

    > else

    > begin

    > with form1 do

    > begin

    > query1.sql.Add('insert into 만화책');

    > query1.SQL.Add('(no, name, book, address, date)');

    > query1.sql.Add('values');

    > query1.sql.Add('( :N1,');

    > query1.sql.Add(' :N2,');

    > query1.sql.Add(' :N3,');

    > query1.sql.Add(' :N4,');

    > query1.sql.Add(' :N5)');

    > DB_Input;

    > end;

    > form1.Query1.ExecSQL;<=====이부분에서 error가 납니다. 해결 좀 해주세요

    > end;

    >

    > end;

    >

    >