有些查询需要使用' Open'命令和一些' ExecSQL'。
我正在使用备忘录进行查询(第一次)
Query1.SQL.Text := ADVMemo1.Lines.Text;
并且无法弄清楚如何处理上述差异 点击按钮。
当按下按钮时有没有办法检查这个,所以它知道要应用什么? 喜欢...如果查询以插入或更新开始,则执行其他操作...
答案 0 :(得分:2)
此例程将检查SQL是否以select
语句启动,如果是,它将打开它,否则它将执行它。
procedure OpenOrExecute(Query: TABSQuery);
var Command: string;
begin
Command := LowerCase(Copy(Trim(Query.Sql.Text), 1, 6));
if Command = 'select' then
begin
Query.Open;
end
else
begin
Query.ExecSQL;
end;
end;
现在您可以随时使用它来打开/执行查询。例如:
OpenOrExecute(Query1);
虽然这只适用于非常简单的查询,例如使用exec
命令调用的存储过程可能会也可能不会返回记录集。单凭SQL命令无法知道它。