Datasnap.DSServer.TDSServerClass
Delphi
TDSServerClass = class(TDSCustomServerClass)
C++
class PASCALIMPLEMENTATION TDSServerClass : public Datasnap::Dscommonserver::TDSCustomServerClass
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
class | public | Datasnap.DSServer.pas Datasnap.DSServer.hpp |
Datasnap.DSServer | Datasnap.DSServer |
説明
動的メソッド呼び出しを使用してリモート クライアントから呼び出し可能な公開メソッドを持つサーバー側クラスを指定するために使用するコンポーネント。
TDSServerClass は、リモート クライアントから動的メソッド呼び出しで呼び出すことができる公開メソッドを持つサーバー側クラスを指定するためのコンポーネントです。
このクラスのメソッドは、DBX クライアント プロバイダや ADO.NET プロバイダなどのリモート クライアントから呼び出すことができます。
含まれるプロバイダに対してクライアント側の TDSProviderConnection クライアント コンポーネントからアクセスできるよう、TRemoteDataModule を拡張したサーバー側クラスを指定することもできます。
公開サーバー クラス メソッドのパラメータおよび戻り値の型としては、TDBXValue スカラ値、TDBXReader オブジェクト、および TStream オブジェクトから派生した、ほとんどの dbExpress 値の型がサポートされています。
サポートされているパラメータ型
現在、パラメータを渡すには TDBXValue を使う方法が最も高速です。これがパラメータ リストを管理するために使われる内部オブジェクトだからです。 このパラメータ型を指定すると、内部的に保持している TDBXValue が直接アプリケーションに渡されます。 ただし、これは TDBXParameterDirections.IN_OUT_PARAMETER パラメータとして扱われるため、値が大きい場合には、メソッドから戻る前にアプリケーション側で TDBXWritableValue.SetNull を呼び出す必要があります。 そうしないと、値がリモート クライアントに送り返されます。
パラメータとして使用できる TDBXValue 型を以下に挙げます。
- TDBXWideStringValue
- TDBXAnsiStringValue
- TDBXInt16Value
- TDBXInt32Value
- TDBXInt64Value
- TDBXSingleValue
- TDBXDoubleValue
- TDBXBcdValue
- TDBXTimeValue
- TDBXDateValue
- TDBXTimeStampValue
- TDBXBooleanValue
- TDBXReaderValue
- TDBXStreamValue
- TDBXUInt8Value
- TDBXInt16Value
- TDBXJSONValue
パラメータとして使用できる JSON 固有の型を以下に挙げます。
var および out のスカラ値型または文字列型は、いずれもサポートされています。
サーバー メソッドの var パラメータは、データベース クライアント ドライバでは TDBXParameterDirections.IN_OUT_PARAMETER として扱われます。 サーバー メソッドの out パラメータは、データベース クライアント ドライバでは TDBXParameterDirections.OUT_PARAMETER として扱われます。
サポートされているスカラ値型を以下に挙げます。
- Boolean
- Byte
- Shortint
- Smallint
- Integer
- Int64
- Single
- Double
- AnsiString
- string
- Currency
- TDateTime
- TDBXTime
- TDBXDate
in および return のスカラ値型はサポートされています。
サーバー メソッドの in パラメータは、データベース クライアント ドライバでは TDBXParameterDirections.IN_PARAMETER として扱われます。 サーバー メソッドの return パラメータは、データベース クライアント ドライバでは TDBXParameterDirections.RETURN_PARAMETER として扱われます。 戻り値は、コマンドのパラメータ リスト内の最後のパラメータとしてデータベース クライアント ドライバに提供されます。
var および out のパラメータとして渡すことができるすべてのスカラ値のほかに、以下のデータ型がサポートされています。
現在、TBcd 値と TSQLTimeStamp 値を渡すことができるのは、TDBXBcdValue パラメータと TDBXTimeStampValue パラメータを使用する場合のみです。
また、TObject から派生したオブジェクトはどれも、var パラメータおよび out パラメータとして渡すことができます。
共有データベース接続
サーバー メソッドとクライアント接続は、データベース接続へのアクセスを共有できます。 クライアント接続は、サーバー側のデータベース接続への関連を一度に 1 つしか持つことができません。 クライアントとサーバー メソッドがデータベース接続を共有することで、クライアントは、自身が呼び出すサーバー メソッドが使用するのと同じデータベース接続やトランザクション コンテキストを使用して、SQL 文や SQL ストアド プロシージャを実行できます。 クライアントがサーバー メソッドとデータベース接続を共有するには、TDBXConnection インスタンスを返すサーバー メソッドを呼び出します。 TDBXConnection インスタンスは、実際にはクライアントに返されません。 代わりに、その TDBXConnection インスタンスは、クライアントによって実行されるすべての SQL 文と SQL ストアド プロシージャ コマンドで使用されます。 便宜上、このサーバー メソッドを指定するには、TDBXPropertyNames.ServerConnection 接続プロパティを TDBXConnection インスタンスを返すサーバー メソッドの名前に設定します。
関連項目
- TDBXAnsiStringValue
- TDSProviderConnection
- TDBXBcdValue
- TDBXBooleanValue
- TDBXConnection
- TDBXDateValue
- TDBXDoubleValue
- TDBXInt16Value
- TDBXInt32Value
- TDBXInt64Value
- TDBXParameterDirections
- TDBXReader
- TDBXReaderValue
- TDBXSingleValue
- TDBXStreamValue
- TDBXTimeStampValue
- TDBXTimeValue
- TDBXValue
- TDBXWideStringValue
- TDBXWritableValue
- TDSServer
- TRemoteDataModule
- TStream
- TObject
- SetNull
- DataSnap サーバー コントロール
- チュートリアル:アプリケーションで DataSnap サーバーを使用する
- チュートリアル:ISAPI DLL サーバーを使用した DataSnap アプリケーション