• SQLDataSet中执行DDL语句


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

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

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

    具体操作:

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

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

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

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

    现在在放入一个SQLDataSet2控件,SQLDataset2.SQLConnection->SQLConnection1执行我们的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中测试通过。

  • 相关阅读:
    c++运算符重载
    c++ const_cast
    SHL
    C++拷贝构造函数(深拷贝,浅拷贝)
    ps命令详解
    static 修饰符
    “宝洁八大问”整理篇
    linux grep命令
    C++操作符重载
    linux中删除指定日期之前的文件
  • 原文地址:https://www.cnblogs.com/sun998/p/6507579.html
Copyright © 2020-2023  润新知