大家帮个忙,看下下面的数据库操作哪里有问题?当程序执行到ExecSQL时,报错说:insert into语句的语法错误。请大家帮看下,谢谢!
with DM.ADOQ2 do
begin
Close;
SQL.Clear;
SQL.Add('insert into BOOK(BOOKNUM, BOOKNAME, BOOKWRITER, TIME, PLACE) Values(:a, :b, :c, :d, :e)');
Parameters.ParamByName('a').Value := num + 1;
Parameters.ParamByName('b').Value := Trim(Edit1.Text);
Parameters.ParamByName('c').Value := Trim(Edit2.Text);
Parameters.ParamByName('d').Value := DateTimePicker1.DateTime;
Parameters.ParamByName('e').Value := Trim(Edit4.Text);
ExecSQL;
end;其中num := DM.ADOQ2.FieldByName('BOOKNUM').AsInteger;
with DM.ADOQ2 do
begin
Close;
SQL.Clear;
SQL.Add('insert into BOOK(BOOKNUM, BOOKNAME, BOOKWRITER, TIME, PLACE) Values(:a, :b, :c, :d, :e)');
Parameters.ParamByName('a').Value := num + 1;
Parameters.ParamByName('b').Value := Trim(Edit1.Text);
Parameters.ParamByName('c').Value := Trim(Edit2.Text);
Parameters.ParamByName('d').Value := DateTimePicker1.DateTime;
Parameters.ParamByName('e').Value := Trim(Edit4.Text);
ExecSQL;
end;其中num := DM.ADOQ2.FieldByName('BOOKNUM').AsInteger;
如果是在dsInsert状态下的话,num应该是个空值
空值+1肯定是要报错的.
insert into BOOK(BOOKNUM,BOOKNAME,BOOKWRITER,TIME,PLACE) Values(:a,:b,:c,:d,:e)
然后再看其他...
Parameters.ParamByName( "d ").Value := DateTimePicker1.DateTime; 后来,我又用了以下方式,可以查询,但不能插入、修改。
ADOQuery1.Parameters.ParamByName('d').Value := FormatDateTime('yyyy-mm-dd', DateTimePicker1.Date);
请各位大虾指点!
ADOQuery1.Parameters.ParamByName( "d ").Value := FormatDateTime( "yyyy-mm-dd ", DateTimePicker1.Date); 但是,在DBGrid中不能显示[TIME]中的内容又是什么原因呢?