高分 急 delphi ado 实施两条sql语句报错

高分 急! delphi ado 执行两条sql语句报错
如何写两条sql语句 下面的报错 Missing operator or semicolon求高手帮助 
procedure TFmMain.bitstopClick(Sender: TObject);
var
  hhh:integer;
  astr:string;
  ss:string;
procedure updatedata;
begin
dm.qCheck.close;
dm.qCheck.sql.clear;
dm.qCheck.sql.add(' begin tran ');
if ss='4999' then
dm.qCheck.sql.add('UPDATE CR_Awards'+curPosID+' SET C_1_Count=C_1_Count-1 ')

dm.qcheck.sql.Add('insert into zj (cr,shijian) values('4999','2012-8-13')')

else if ss='1000' then
dm.qCheck.sql.add('UPDATE CR_Awards'+curPosID+' SET C_2_Count=C_2_Count-1 ')
dm.qcheck.sql.Add('insert into zj (cr,shijian) values('1000','2012-8-13')')
else if ss='200' then
dm.qCheck.sql.add('UPDATE CR_Awards'+curPosID+' SET C_3_Count=C_3_Count-1 ')
dm.qcheck.sql.Add('insert into zj (cr,shijian) values('200','2012-8-13')')
else if ss='100' then
dm.qCheck.sql.add('UPDATE CR_Awards'+curPosID+' SET C_4_Count=C_4_Count-1 ')
dm.qcheck.sql.Add('insert into zj (cr,shijian) values('100','2012-8-13')')

else if ss='50' then
dm.qCheck.sql.add('UPDATE CR_Awards'+curPosID+' SET C_5_Count=C_5_Count-1 ')
dm.qcheck.sql.Add('insert into zj (cr,shijian) values('50','2012-8-13')')
else if ss='0' then
dm.qCheck.sql.add('UPDATE CR_Awards'+curPosID+' SET C_Pjcs=C_Pjcs-1 ');

dm.qCheck.sql.add(' if @@error=0 commit tran else rollback tran ');
dm.qCheck.execsql;
end;


------解决方案--------------------
全部写在一起也是可以的, 不过要注意空格和单引号
可以在最后用showmessage(),把语句显示出来复制到查询分析器中运行看看

------解决方案--------------------
你的写法(连在一起)是没有问题的,你试试在执行之前showmessage一下,看看qCheck.sql.text的内容是怎么样的,复制到查询分析器中执行下,看看是什么情况。