adoquery+dbIV我用以下语句添加一条纪录,为什么出错?(insert into 语句的语法错误)
adoquery1.close;
adoquery1.sql.Clear ;
adoquery1.sql.Clear ;
adoquery1.sql.Text:='insert usertype (rq,name,source) ' + 'values ('+ datetostr(now()) +','''+ edit1.Text +''','+ uppercase(edit2.Text)+')'; try
adoquery1.execsql;
except
close;
self.Close ;
end;其中rq为date类型,source为nummber类型,name 为c类型.
adoquery1.close;
adoquery1.sql.Clear ;
adoquery1.sql.Clear ;
adoquery1.sql.Text:='insert usertype (rq,name,source) ' + 'values ('+ datetostr(now()) +','''+ edit1.Text +''','+ uppercase(edit2.Text)+')'; try
adoquery1.execsql;
except
close;
self.Close ;
end;其中rq为date类型,source为nummber类型,name 为c类型.
Text我没有用过。
我觉得那些参数最好用传参数的方法。不要作为字符串连接在一起。
begin
close;
sql.clear;
sql.add(' insert into usertype (rq,name,source) ');
sql.add(' values ('''+ datetostr(now()) +''' ');
sql.add(' ,''' + edit1.Text + ''' ');
sql.add(' ,''' + uppercase(edit2.Text) + ''' ');
try
ExecSQL;
except
end;
end;
self.close;
你的问题是在datetostr(now()) 那里没有使用'''来联接
你的是values(a,b,c)
know?你中间的edit1.Text两边都加了单引号,为什么其他两个参数没加呢,奇怪
楼主的出错信息是什么?好象是符号的问题。
adoquery1.sql.text:='insert into usertype (rq, name, source) '+
'values ('+QuotedStr(DateToStr(Now))+', '+
QuotedStr(Edit1.Text)+', '+
QuotedStr(uppercase(edit2.text))+')';
Format('indert tablename',valuse(%s,%d),''''+Edit1.text+''''。))