简体   繁体   English

Delphi Unidac MySQL 从备忘录代码语法错误创建触发器

[英]Delphi Unidac MySQL Create Trigger From Memo Code Syntax Error

Here is my MySQL Trigger code;这是我的 MySQL 触发代码;

DELIMITER //
CREATE TRIGGER pdfdenemeu BEFORE INSERT
ON denemetbl
FOR EACH ROW
BEGIN
  SET NEW.iki =  CONCAT(NEW.bir,'.pdf');
END//
DELIMITER ;

When i run this code on HeidiSQL it creates trigger and works perfectly.当我在 HeidiSQL 上运行此代码时,它会创建触发器并完美运行。

On Delphi XE7 i'm adding a button and a memo to form, putting this code inside of the memo, and button's onclick event is;在 Delphi XE7 上,我添加了一个按钮和一个备忘录,将这段代码放在备忘录中,按钮的 onclick 事件是;

sorgu.Close;
sorgu.SQL.Clear;
sorgu.SQL.Add(trim(memo1.text));
sorgu.ExecSQL;

When i click to button, it returns syntax error;当我点击按钮时,它返回语法错误; 错误截图

Also tried as below;也试过如下;

sorgu.Close;
sorgu.SQL.Clear;
sorgu.SQL.Add('DELIMITER //');
sorgu.SQL.Add('CREATE TRIGGER pdfdenemeu BEFORE INSERT');
sorgu.SQL.Add('ON denemetbl');
sorgu.SQL.Add('FOR EACH ROW');
sorgu.SQL.Add('BEGIN');
sorgu.SQL.Add('SET NEW.iki =  CONCAT(NEW.bir,''.pdf'');');
sorgu.SQL.Add('END//');
sorgu.SQL.Add('DELIMITER ;');
sorgu.Execute;

As i mentioned trigger code works without any error on HeidiSQL and MySQL command line, why i'm getting this error message, what am i doing wrong?正如我提到的触发代码在 HeidiSQL 和 MySQL 命令行上没有任何错误,为什么我收到此错误消息,我做错了什么?

As @olivier mentioned DELIMETER is specific to HeidiSQL, i tried to remove delimeter and tried again but didn't solved the problem, but what i did was call the old code with delimeter from my new code, when i thought i removed the delimeter but i wasn't.正如@olivier 提到的 DELIMETER 是 HeidiSQL 特有的,我尝试删除 delimeter 并再次尝试但没有解决问题,但我所做的是用我的新代码中的 delimeter 调用旧代码,当我认为我删除了 delimeter 但是我不是。

So as @olivier mentioned in first post's comment i changed query to this;因此,正如@olivier 在第一篇文章的评论中提到的那样,我将查询更改为此;

CREATE TRIGGER pdfdenemeu BEFORE INSERT ON denemetbl FOR EACH ROW BEGIN SET NEW.iki= CONCAT(NEW.bir,'.pdf'); END;

Worked perfectly.工作完美。 @olivier Thank you, i owe you one. @olivier 谢谢,我欠你一个。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM