gpt4 book ai didi

mysql - Sql 语法给出未知语法错误

转载 作者:行者123 更新时间:2023-11-29 23:27:41 24 4
gpt4 key购买 nike

我的 mysql 语句有问题。

基本上,代码在插入时工作得很好,但是一旦addnew变量= false并且它切换到更新,它就会给我一个我无法解决的错误。

代码:

procedure Tadddomain.BitBtn2Click(Sender: TObject);
Var
PrevSql:String;
ID:String;
begin
With Datalive.domains Do
Begin
id:=fieldbyname('id').AsString;
Active:=False;
prevsql:=sql.Text;
Sql.Clear;
Params.Clear;
Addparam(Datalive.domains,'client_id',ftinteger,datalive.clients.FieldByName('id').AsString);
Addparam(Datalive.domains,'domain_name',ftString,Edit1.Text);
Addparam(Datalive.domains,'register_date',ftdate,DateTimePicker1.Date);
Addparam(Datalive.domains,'registered_until',ftdate,DateTimePicker2.Date);
if addnew=true then
Sql.Text:='Insert into domains (client_id,domain_name,register_date,registered_until) VALUES (:client_id,:domain_name,:register_date,:registered_until)'
Else if addnew=False then
Sql.Text:='Update domains (domain_name=:domain_name, register_date=:register_date, registered_until=:registered_until) where id='''+id+'''';
Showmessage(sql.text);
execsql;
sleep(100);
sql.Text:=prevsql;
active:=True;
done:=True;
adddomain.Close;
End;
end;

错误:

Project project1.exe raised exception class EZSQLException with message 'SQL Error: You have an error in your SQL syntax; check the manual that corresponds to your mysql server version for the right syntax to use near '(domain_name='asd',register_date='2014-11-09',registered_until='2015-11-09') w' at line 1'.

任何帮助都会很棒,我已经搜索了又搜索但找不到错误。

<小时/>

更新:

我按照下面的建议更改了编辑代码,现在没有出现任何错误。但也什么也没有发生。它不会编辑记录。

if addnew=true then
Sql.Text:='Insert into domains (client_id,domain_name,register_date,registered_until) VALUES (:client_id,:domain_name,:register_date,:registered_until)'
Else if addnew=False then
Begin
sql.Add('Update domains');
sql.Add('set domain_name=:domain_name,');
sql.Add('register_date=:register_date,');
sql.Add('registered_until=:registered_until');
sql.Add('where id=:id');
End;

最佳答案

更新语法是这样的

Update domains 
set domain_name = :domain_name,
register_date = :register_date,
registered_until = :registered_until
where id = :id

关于mysql - Sql 语法给出未知语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26829869/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com