为了方便,所有字段全采用文本字段,
riqi:=formatdatetime('dddddd',now);yuefen:=formatdatetime('mm',now);adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into qq(月份,时间,姓名,服务项目,金额) values (');
ADOQUERY1.SQL.Add(yuefen+',');
ADOQUERY1.SQL.Add(riqi+',');
ADOQUERY1.SQL.Add(combobox2.Text+',');
ADOQUERY1.SQL.Add(edit2.Text+',');
ADOQUERY1.SQL.Add(edit3.Text+');'); adoquery1.ExecSQL;这时候出现“语法错误,操作符丢失....”
riqi:=formatdatetime('yyyy/mm/dd',now);yuefen:=formatdatetime('mm',now);adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into qq(月份,时间,姓名,服务项目,金额) values (');
ADOQUERY1.SQL.Add(yuefen+',');
ADOQUERY1.SQL.Add(riqi+',');
ADOQUERY1.SQL.Add(combobox2.Text+',');
ADOQUERY1.SQL.Add(edit2.Text+',');
ADOQUERY1.SQL.Add(edit3.Text+');'); adoquery1.ExecSQL;
这时候倒是能插入,但本应是2009-10-26这样的数据,却变成了1973
riqi:=formatdatetime('dddddd',now);yuefen:=formatdatetime('mm',now);adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into qq(月份,时间,姓名,服务项目,金额) values (');
ADOQUERY1.SQL.Add(yuefen+',');
ADOQUERY1.SQL.Add(riqi+',');
ADOQUERY1.SQL.Add(combobox2.Text+',');
ADOQUERY1.SQL.Add(edit2.Text+',');
ADOQUERY1.SQL.Add(edit3.Text+');'); adoquery1.ExecSQL;这时候出现“语法错误,操作符丢失....”
riqi:=formatdatetime('yyyy/mm/dd',now);yuefen:=formatdatetime('mm',now);adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into qq(月份,时间,姓名,服务项目,金额) values (');
ADOQUERY1.SQL.Add(yuefen+',');
ADOQUERY1.SQL.Add(riqi+',');
ADOQUERY1.SQL.Add(combobox2.Text+',');
ADOQUERY1.SQL.Add(edit2.Text+',');
ADOQUERY1.SQL.Add(edit3.Text+');'); adoquery1.ExecSQL;
这时候倒是能插入,但本应是2009-10-26这样的数据,却变成了1973
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into qq(月份,时间,姓名,服务项目,金额) values (');
ADOQUERY1.SQL.Add(quotedstr(yuefen)+',');
ADOQUERY1.SQL.Add(quotedstr(riqi)+',');
ADOQUERY1.SQL.Add(quotedstr(combobox2.Text)+',');
ADOQUERY1.SQL.Add(quotedstr(edit2.Text)+',');
ADOQUERY1.SQL.Add(edit3.Text+')'); adoquery1.ExecSQL; adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('insert into qq(月份,时间,姓名,服务项目,金额) values (');
ADOQUERY1.SQL.Add(yuefen+',');
ADOQUERY1.SQL.Add(quotedstr(riqi)+',');
ADOQUERY1.SQL.Add(quotedstr(combobox2.Tex)t+',');
ADOQUERY1.SQL.Add(quotedstr(edit2.Text)+',');
ADOQUERY1.SQL.Add(edit3.Text+')'); adoquery1.ExecSQL;
quotedstr 给字符串两边加单引号
或 char(39)+yuefen+char(39)
或 ''+yuefen+''
2009-10-26=1973
应该使用quotedstr(日期字符串)
with adoquery do
begin
sql.text := 'insert into t values(:a)';
parameters.parambyname('a').value := strtodate(formatdatetime('yyyy-mm-dd',now()));
execsql;
end;
要得到你想要的那种格式该是这样:
riqi:=formatdatetime('yyyy-mm-dd',now);
然后插入过程在程序中还是建议你用
adoquery1.append;
.......
adoquery1.post;
这样都比较清楚一点。
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from qq');
adoquery1.open;
adoquery1.append;
adoquery1.fieldbyname('月份').asstring:=yuefen;
adoquery1.fieldbyname('时间').asstring:=riqi;
adoquery1.fieldbyname('姓名').asstring:=combobox2.Text;
adoquery1.fieldbyname('服务项目').asstring:=edit2.Text;
adoquery1.fieldbyname('金额').asstring:=edit3.Text;
adoquery1.post;
yuefen:=Quotedstr(formatdatetime('mm',now));with adoquery1 do
begin
close;
sql.text:='insert into qq(月份,时间,姓名,服务项目,金额) values ('
+yuefen+','+riqi+','+Quotedstr(combobox2.Text)+','
+Quotedstr(edit2.Text)+','+Quotedstr(edit3.Text)+')';
ExecSQL;
end;