我无法正确执行以下脚本。它在 delphi 中针对 firebird 数据库运行。
var
vScript: TADScript;
begin
vScript := TADScript.Create(nil);
vScript.Connection := xConnection;
vScript.Transaction := xTransaction;
with vScript.Params.Add do
begin
Name := 'DEFVAL'; // also tried ':DEFVAL'
AsInteger := 1;
end;
with vScript.SQLScripts.Add do
SQL.Text := 'ALTER TABLE "PERSON" add "AGE" INTEGER DEFAULT :DEFVAL';
vScript.ValidateAll;
vScript.ExecuteAll;
end
它给出了“令牌未知 - 第 1 行,第 48 列”的错误,参数 (:DEFVAL) 位置
我尝试先分配 sql 文本,然后调用 Params.FindParam 但它不在列表中。这适用于查询。
不使用参数而只在 SQL 字符串中包含默认值是可行的,但此代码用作更大框架的一部分,并且该选项是最后的手段。