Delphiは3層アプリケーションの開発を使用して行わDatasnapで

DelphiはDatasnapで3層アプリケーションの開発を使用して、以下のように、我々は、いくつかの技術を蓄積してまとめています:

1、DataSnapサーバーで(推奨!)を使用するTDatasetProvider、クライアントが使用するのTDSProviderConnection

      1)Datasnapでサーバ、TCP / IP、HTTP通信を使用することができます。TDatasetProvider 提供することができ  、「メタデータとビジネスデータを。」

            推奨:TFDConnectionはTFDQuery / TFDTableに渡すために、データベースに接続(FireDac技術)を使用して  TDataSetProviderを  データ・セットを提供し;(データベースのDharana新バージョンを!)

            注:また、(DBX技術)を使用することができるTSQLConnect、のTSQLDataSet / TSQLQueryを/ TSQLTable / TSQLStoredProc、 TDataSetProviderデータセットを提供します。

      

      2)クライアントの使用は(dbExpressのは、技術のある  DBX)+のTDSProviderConnectionのTSQLConnection == "TClientDataSetの=="のTDataSource

           TSQLConnectionのは、DataSnapの駆動、DataSnapCONNECTIONを設定します。

           提供のTDSProviderConnection:例のTSQLConnection(DataSnapの駆動); ServerClassNameセット「クラス名」サービスを提供するDataSnapサーバー。

            TClientDataSetのセット:のRemoteServerのTDSProviderConnectionを例に、ProviderNameは、対応する「クラス」サービス側で  TDatasetProviderインスタンス。

                 ヒント1:(1  FRM)TClientDataSetのTStringGridに結合する、または(2でき  VCL)のTDataSourceを増加させることによってのTDBGridに接続されています。

                 ヒント2:変更クライアントTClientDataSetの、そしてどのように並べ替え、サーバとクライアントのクエリデータセットを返すために、フィルタリング、

                              提案参照「Delphi2006効率のdbExpressデータベース開発」の本は、「デルファイ10.1ベルリンのDataSnap開発ハンドブック」第一章では、この技術を導入しています。

 

      3)場合T場合DataSetProvider、のみデータセットを提供することができ、確立されるべき データセットからのマスタマスタ/詳細は、以下の方法を必要とします。

           TFDQueryは、2つのデータセット、メインマスター、他方の主Masterdataプロパティデータセットを使用して確立しました。

 

      !4)(まあ、参照)のためにサーバーが  唯一のいずれかになります。TFDConnection + + TFDQuery  TDataSetProviderクライアントにデータを提供し、

               しかしTDatasetProviderプロパティ  オプション選択にpoAllowCommandTextはTrueです  TFDQueryは、そのSQL値を管理していないことができ、

               クライアントから直接SQLを受信し、クライアントは、クエリデータ収集ターミナルを返します。

               よるTClientDataSetのクライアント  CommandTextプロパティには、SQLサーバーに送信されるのparamsから取得したSQLコマンド、パラメータ、およびパラメータ値を、設定、および戻り値のデータを受け取ります。

               これは、サーバーができ  、複数のクライアントにサービスを提供、TDatasetProviderを。もちろん、より適切な、またはデータ収集ワンタイムセッションセッションが終了し、接続が切断さSQLConnです。

               リファレンス「の操作テーブルからDataSnapの三つの主要ClientDataSetのマスターを取得するための設定テーブルから」!! 

              

使用TFDQuery DataSnapサーバー、またはTSQLConnectionのTDSRestConnection、データ交換を使用して、クライアントでは2、 TStreamにします

       参考:http://docwiki.embarcadero.com/CodeExamples/Tokyo/en/DataSnap.FireDAC_DBX_Sample   (DataSnapの米国FireDAC

       1)Datasnapでサーバ、TCP / IP、HTTP通信を使用することができます。

             TFDConnection接続データベース、TFDQuery(+ TFDSchemaAdapterを提供される)によって提供されたデータセット、==「のTDataSource(プライマリ) 

                                                             TFDQuery(提供+ TFDSchemaAdapter、提供MasterSource、 "プライマリ・データ・ソース/ ID" としてMasterFields)を提供するデータセットによって、

                                                                       ==「のTDataSource(から) 

             出版サービスクラス(Class)メソッドセット送信データTStreamに型ように、TFDSchemaAdapter送信データによって、更新を受信し、データベースに書き込まれます。

                    機能TServerMethods.StreamGet:TStreamに。

                    開始
                         結果:; = TMemoryStream.Create
                         トライ
                            qCustomers.Closeを; //マスターデータが設定され
                            、qCustomers.Open
                            qOrders.Closeを、より設定//データ
                            qOrders.Open;
                            FDSchemaAdapter .SaveToStream(結果、TFDStorageFormat.sfBinary);
                            Result.Position: 0 =;
                         最後に

                            //
                       よりも、
                   以上;

                  そして、受信方法:

                  TServerMethods.StreamPost機能(AStream:TStreamにする):文字列;
                   VAR
                       LMemStream:TMemoryStream;
                       LErrors:整数;
                   始める
                         の検索結果を:= '';
                        //クライアント全体からクライアント盗んストリームからのデータストリームを取得
                        LMemStream:=  CopyStream(AStream); / /データを再生するストリーム
                        LMemStream.Position:= 0;
                      トライ
                          FDSchemaAdapter .LoadFromStream(LMemStream、TFDStorageFormat.sfBinary);
                          LErrors:= FDSchemaAdapter.ApplyUpdates
                       最後に
                          LMemStream.Free;
                          LErrors場合> 0は、次に
                             結果:=フォーマット(sErrorsOnApplyUpdates、[GenerateErrorMessage])。
                       終わり;
                    終わり;

 

       ; 2)TDSRestConnection(レストモード)1)のTSQLConnection(DBXモード):2)クライアントは、2つの接続を使用することができ

            プロキシクラスのメソッドを呼び出して、(Datasnapでクライアントクラスの生成)の両方(右ドット)サーバーのプロキシクラスによって生成することができ、サーバは、データ・ストリームを取得。

                 TFDTableAdapter(+同じTFDSchemaAdapterのサービス側に設定DatSTableName  TFDQuery名  )== "TMemTable =="のTDataSource(メイン-お客様)

                 TFDTableAdapter(+同じTFDSchemaAdapter)のサービス側に設定DatSTableName  TFDQuery名)== "TMemTable =="からのTDataSource( -オーダー)

              データ、参考例を取得する方法!GRIDを結合(...中略)。 

                  LMemStream:= TServerMethodsClient(のServerConnection)サーバーがデータの流れTStreamに取得し、アセンブリコネクタを介してプロキシクラスを.StreamGet。

                   FDSchemaAdapter .LoadFromStream(LMemStream、TFDStorageFormat.sfBinary)ストリームからのデータセットをロードします。            

 

 3、残りのDataSnapアプリケーションサーバ、HTTP通信(!を考慮して)、TFDJsonDataSetsはフォーマットTFDJsonDeltaとデータを交換します

       例第9章(9.3)3使用TFDJsonDataSets関数リファレンス"のDelphi 10.1ベルリンのDataSnap開発マニュアル"

 

4、(デルファイが生成される)、これらに限定されない、RESTfulな休憩クライアント接続サービスを使用して(推奨)注意:TRESTResponseDataSetAdapterアプリケーション。

        「デルファイ10.1ベルリンFireDACデータベース開発マニュアル」P109 3-1-2第一章ではTFDMemTable休みを利用してデータを処理し、アプリケーションを記述しています。

            使用  TRESTResponseDataSetAdapter  TRESTResponseの TFDMemTableへのデータは、メタデータ情報が含まれています。

            公式例:           http://docwiki.embarcadero.com/RADStudio/Tokyo/en/REST_Client_Library

公開された30元の記事 ウォンの賞賛2 ビュー50000 +

おすすめ

転載: blog.csdn.net/khzide/article/details/86567726
おすすめ