解析delta得到sql语句的函数

来源:Oracle认证    发布时间:2012-11-12    Oracle认证视频    评论

  if s1<>'' then

  begin

  Cmdstr:=' update '+ptablename+' set '+s1+' where '+s2;

  end;

  end;

  usInserted:

  begin

  s1:='';

  s2:='';

  for i:=1 to Cdsupdate.FieldCount do

  if (not Cdsupdate.Fields[i-1].isNull)and(Cdsupdate.Fields[i-1].tag=1) then

  begin

  if s1='' then

  begin

  s1:=Trim(Cdsupdate.Fields[i-1].FieldName);

  s2:=vartosql(Cdsupdate.Fields[i-1].value);

  end

  else

  begin

  s1:=s1+','+Trim(Cdsupdate.Fields[i-1].FieldName);

  s2:=s2+','+vartosql(Cdsupdate.Fields[i-1].value);

  end;

  end;

  if s1<>'' then

  begin

  Cmdstr:=' Insert into '+ptablename+'('+s1+') values('+s2+')';

  end;

  end;

  usDeleted:

  begin

  s2:='';

  for j:=1 to Keylist.Count do

  begin

  if s2='' then

  s2:=Keylist[j-1]+'='+vartosql(Cdsupdate[Keylist[j-1]])

  else

  s2:=s2+' and '+Keylist[j-1]+'='+vartosql(Cdsupdate[Keylist[j-1]]);

  end;

  Cmdstr:='Delete '+ptablename+' where '+s2;

  end;

  end;

  if Cmdstr<>'' then

  sqlstr:=sqlstr+Cmdstr+';'+chr(13)+chr(10);

  Cdsupdate.Next;

  end;

  end;

  finally

  Cdsupdate.close;

  Cdsupdate.Free();

  end;

  Result:=sqlstr;

  end;

  编辑特别推荐:

  常用的SQL注射语句解析

  Oracle提议基于开放标准的云管理API

  修改计算机名称导致Oracle的em不能用

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答