zoukankan      html  css  js  c++  java
  • SQLDataSet中执行DDL语句

    在SQLDataSet中执行我们输入的DDL语句,并观察执行结果。

    这里为了省输入的时间,从先输好的记事本中复制的SQL语句。效果图:

    **************************************************************************************

    具体操作:

    **************************************************************************************

    DBGrid1.DataSource->DataSource1.DataSet->ClientDataSet1.ProviderName->DataSetProvider1->

    SQLDataset1.SQLConnection1->具体数据库(这里连接的是oracle中的新建的Persons(根据自己新建的表名)表);

    这里SQLDataset1和ClientDataSet1都不能设置为TRUE,因为表还没建起来,会返回个错误。

    现在在放入一个SQLDataSet2控件执行我们的DDL语句。

    现在窗体结构应该如下图:

    **************************************************************************************

    主要代码:

    **************************************************************************************

    procedure TForm3.ExeSQLScript;
    var
      strScript:string;
      strSQL:string;
      iPos:integer;
    begin
       strScript:=Memo1.Lines.Text;
       while Length(strScript)>0 do
       begin
         iPos:=Pos(‘;‘,strScript);
         if iPos>0 then
         begin
           strSQL:= Copy(strScript,1,iPos-1);
           SQLDataSet2.CommandText:=strSQL;
           SQLDataset2.ExecSQL(true);
           Delete(strScript,1,iPos);
         end else
         begin
           break;
         end;
       end;
       if ClientDataSet1.Active then
        begin
       ClientDataSet1.Refresh;
        end else
        begin
          ClientDataSet1.Active:=true;
        end;
    end;
    
    procedure TForm3.Button1Click(Sender: TObject);
    begin
      ExeSQLScript;
    end;
    

      能上代码在DELPHI XE5 ,WIN7 X64,ORACLE 11G中测试通过。

  • 相关阅读:
    Lock接口与等待唤醒机制
    线程同步(线程安全处理Synchronized)与死锁
    关于线程安全的例子(电影票出售)
    线程池
    多线程
    commons-IO工具包
    打印流
    关于web的安全问题
    防止手机页面软键盘调出时布局被挤压
    css3新特性归总笔记
  • 原文地址:https://www.cnblogs.com/Smina/p/6509768.html
Copyright © 2011-2022 走看看