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;
안녕하세요..조복기입니다..
비가 오니까 시원해서 좋네요..
제생각엔 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;
>
>