高手帮我看看这段语句错在哪里啊?
if Flag = 1 then
begin
if share.userId = Trim(ComboBox1.Text) then
begin
Sql := 'Insert into ZHAOWEI.BZGZ(NN,workdate,banzu,workdata,people,manincharge) values( ' ' ' + (Form1.Query1.FieldByName( 'bh ').AsString) + ' ' ', ' ' '+ DateToStr(Self.DateTimePicker1.Date) + ' ' ', ' ' ' + Trim(ComboBox1.Text) + ' ' ', ' ' ' + Trim(Memo1.Text) + ' ' ', ' ' ' + Trim(Memo2.Text) + ' ' ', ' ' ' + Trim(Edit1.Text) + ' ' ') ' ;
// else
// Application.MessageBox( '班组选择错误 ', '提醒 ',mb_ok);
end
end;
[解决办法]
Sql是什么?是你自己声明的字串变量?如果不是,而是一个Query组件的SQL,那要SQL.text := ....或SQL.Lines.add(...);
上面那六个字段,都是文本类型的?如果有Date或DateTime类型的,赋值要有一定格式的。以ACCESS数据库为例:
'insert into 表 (日期时间字段) values (CDate( ' + QuoTedStr( '字串 ') + ')) ' 或
'insert into 表 (日期字段) values ( ' + QuoTedStr( '# '+ '字串 '+ '# ') + ') '
[解决办法]
我建议你使用参数吧,paramter 这样是什么类型匹配什么类型,不会混淆。而且代码看起来也容易懂!