我尝试在Delphi中调用MySQL函数,但我不能Unspecified error.
。
样本函数1是:
CREATE FUNCTION `TEST`(`test` INT)
RETURNS INT
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
RETURN 123+TEST ;
END
另一个SQL函数示例:
CREATE FUNCTION `GET_OPTION_AS_INT`(`id` INT)
RETURNS bigint(20)
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'GET option value'
BEGIN
RETURN CAST((SELECT `option_value` FROM `OPTION` WHERE `option_id` = `id`) AS UNSIGNED);
END
我的Delphi代码是:
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('SELECT `TEST`(:test)');
qry1.Parameters.ParamByName('test').Value := 1 ;
qry1.Open;
第二个Delphi代码:
qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('SELECT GET_OPTION_AS_INT(:id)');
qry1.Parameters.ParamByName('id').Value := 1 ;
qry1.Open;
这是一个简单的例子,否则我会使用与GET_OPTION_VALUE
和...
我该如何解决?
答案 0 :(得分:0)
目前,如果这是一个函数或一个select语句是无关紧要的。 只需将一些文本分配给qry1.SQL即可创建参数:test。
使用
查看您的功能 qry1.Close;
qry1.SQL.Clear;
qry1.SQL.Add('SELECT TEST(1)');
qry1.Open;
如果在设计时创建查询,则在可视SQL查询对象中设置参数类型ParamByName将起作用。
使用参数动态创建SQL是没有意义的,因为您知道参数值无论如何都会...