SQLDataSet中执行DDL语句
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中测试通过。
以上是关于SQLDataSet中执行DDL语句的主要内容,如果未能解决你的问题,请参考以下文章
jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化