语法检查问题 (100分)

  • 主题发起人 主题发起人 hnzgw
  • 开始时间 开始时间
H

hnzgw

Unregistered / Unconfirmed
GUEST, unregistred user!
最近在写程序时碰到一个问题,我在窗体上放了两个按钮,一个是"校验"按钮,另一个是"执行"
按钮."校验"按钮是的代码是这样的:
//sqlstr只是我现在写的例子
sqlstr:='update dat1 set f1=f2+f3 '
try
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add(sqlstr);
Query1.ExecSQL;
application.MessageBox('计算公式语句检验通过!','提示',+
MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);
except
application.MessageBox('计算公式语句存在语法错误,请分别检查赋值与条件语句','提示',+
MB_OK+MB_ICONWARNING+MB_SYSTEMMODAL);
exit;
end;

我的意思是要判断sqlstr这个字符串是不语法正确,但我不需要去更新数据库的数据,只
有按"执行"按钮时才去更新数据库中的数据.但如果不去执行更新数据又无法判断sqlstr
是否正确,我已经没法了,各位DELPHI高手帮忙看一下,说明一个sqlstr里的中字符串是
不确定的,我这里只是个例子.先谢谢了
 
用事务试试
在执行前开始
然后回滚事务

还有,你这样判断不很好,如果是以下语句
select * from tab
TAB是个很大的表,效率就太差了
 

database1.StartTransaction();//开始事务
try
Query1.Active:=false;
Query1.SQL.Clear;
Query1.SQL.Add(sqlstr);
Query1.ExecSQL;
application.MessageBox('计算公式语句检验通过!','提示',+
MB_OK+MB_ICONINFORMATION+MB_SYSTEMMODAL);
database1.RollBack();//取消事务
except
database1.RollBack();//取消事务
application.MessageBox('计算公式语句存在语法错误,请分别检查赋值与条件语句','提示',+
MB_OK+MB_ICONWARNING+MB_SYSTEMMODAL);
exit;
end;
 
to ysai
除了这种方法,谁有更好的意见
 
高手过来看一看
 
sqlstr:='update dat1 set f1=f2+f3 ' where 条件
给一个条件,使符合这个条件的数据为0条记录,然后执行这个更新。
 
sqlstr:='update dat1 set f1=f2+f3 ' where 1=2
符合这个条件的数据肯定为0条记录
 
后退
顶部