複数のデータセットを得ることにunidacでクエリを実行するには?

私の友人の多くがで複数のデータセットを取得unidacでクエリを実行する方法を尋ねましたか?

実際には、この問題はunidac長いこの機能をサポートし、非常にシンプルですが、多くの人が勉強していません。

今日について簡潔には、中unidacに複数のデータセットを取得するクエリを実行します。必要なすべてのデータベースのサポートのまず、もし

それをサポートしていないデータベースは、unidacは達成するための方法はありません。

今日では、SQL Serverの2014ために、例えば、この機能を実装する方法について話しています。

まず、中uniqueryで次のクエリを実行します。

手順TForm2.Button7Click(送信者:TObjectを);
開始
  cx.SQL.Clearを。
  cx.SQL.Add(' DWB DからのSELECT * ' ); 
  cx.SQL.Add(' FJRYB F SELECT * FROM ' ); 
  cx.Open; 
エンド ;

私たちは直接、コードのこの部分を実行し、通常の文になる場合明らかに、select文は、最初の結果を返します。

 

 

 だから、どのように我々は、データそれの第2のセットを得るのですか?非常に単純な

手順TForm2.Button8Click(送信者:TObjectを);
開始し
 ている場合 ではない cx.OpenNext その後、
   終了。

エンド ;

私達はちょうどOpenNextプロセスを呼び出します。第2のデータセットがある場合、現在のデータセットは、第二のデータセットに移動させます

 

 

 あなたがopennext行う場合のみ、二つのデータセットので、もう一度収集したデータを閉じます。何も示しています。

 

 

 その後、再び、それはopennextが環状であることを示す第1のデータセットを示すことができます。

似ているストアドプロシージャではもちろん。

私たちは、最初のストアドプロシージャを記述します。

CREATE  PROCEDURE dbo.MYSUM @sumok  INTの出力は、
 AS 
BEGIN 

  SET  @sumok  =  1  +  2 

  SELECT     *    FROM DWBは、D
     SELECT   *    FROM FJZB F
 END 
GO

我々は2つのデータセット、一つの出力パラメータを返すようにしたいです。

procedure TForm2.Button6Click(Sender: TObject);
var
  i:integer;

  tablelist:Tlist<Tdataset> ;
begin
   sp.Params[1].ParamType:=ptInputOutput;
   sp.Params[1].DataType:=ftInteger;
   sp.Params[1].AsInteger:=10;
   sp.Execute;
     repeat
       showmessage(  sp.Fields[1].AsString);
     until  not sp.OpenNext;


  i:=sp.Params[1].AsInteger;

  showmessage(i.ToString);
end;

运行结果为:

 

 

 

 

 

 说明一切运行正常。

 

おすすめ

転載: www.cnblogs.com/xalion/p/12418902.html