Pure JavaScriptにはリモートデータベースを使用するための組み込みメソッドはないため、この機能はサーバー側のコードを使用して実装されています。したがって、Stimulsoft Reports.js製品には、PHP、node.js、asp.net、Java Technologiesを使用して実装されたサーバーデータアダプターが含まれています。
データベースアダプターは、DBMSとクライアントスクリプトの間のソフトウェアレイヤーです。アダプターはDBMSに接続し、必要なデータを取得し、JSONに変換します。サーバーで実行されているスクリプト(アダプターを使用)は、クライアント側のJavaScriptアプリケーションとサーバー側の間のJSONデータの交換を提供します。
クライアント側でこのメカニズムを使用するには、必要なアダプターにリクエストを処理するホストアダプターのURLアドレスを指定する必要があります
さまざまなプラットフォーム用に実装された、Ready Data Adapterを使用した例へのリンク:
アダプターを使いやすいです。
アダプターを実行し、そのアドレスを指定する必要があります。
StiOptions . WebServer . url = "http://localhost:9615" ; SQLデータソースからデータをリクエストすると、Stimulsoft.Report.Engineは、オプションで指定されているURLにPOSTリクエストを送信します。
StiOptions . WebServer . url = "https://localhost/handler.php" ;次の構造を使用する要求のボディにパラメーターを持つJSONオブジェクトが渡されます。
command :2つのバリアントが可能です - 「テスト接続」_「 ExecuteQuery 」connectionString :データベース接続文字列queryString :クエリ文字列database :データベースタイプtimeout :データソースで指定されたリクエストの待機時間parameters :JSONオブジェクトとしてのパラメーターの配列{名前、値}escapeQueryParameters :リクエスト前にシールドするパラメーターのフラグこれに応じて、Stimulsoft.Report.Engineは、次の構造の形式のデータを持つJSONオブジェクトを期待しています。
success :成功したコマンド実行のフラグnotice :コマンド実行のフラグに誤った値がある場合、このパラメーターにはエラー説明が含まれますrows :文字列配列、各要素は値の配列であり、インデックスは列番号ですcolumns :列名の配列、インデックスは列番号ですtypes :列タイプの配列、インデックスは列番号です。値「文字列」、「番号」、「 int 」、「 boolean 」、「 array 」、「 datetime 」を取得できます。checkVersion :Data AdapterバージョンとStimulsoft.Report.Engineバージョンのチェックを無効にするオプションフラグ。リクエストと応答サンプル:
request = {
command : "ExecuteQuery" ,
connectionString : "Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;" ,
queryString : "select * from table1" ,
database : "MS SQL"
}
response = {
success : true ,
rows : [
[ "value1" , 1 , false ] ,
[ "value2" , 1 , true ] ,
[ "value3" , 2 , false ]
] ,
columns : [
"Column1_name" ,
"Column2_name" ,
"Column3_name"
] ,
types : [
"string" ,
"int" ,
"boolean"
]
}追加のパラメーターを設定できます。
StiOptions . WebServer . encryptData = false ;Stimulsoft.Report.Engineからデータアダプターへのリクエストの暗号化を無効にします。
StiOptions . WebServer . checkDataAdaptersVersion = false ;Data AdapterバージョンとStimulsoft.Report.Engineバージョンのチェックを無効にします。
また、データベースタイプを登録することもできます。それを行うには、オプションを使用して関数を呼び出す必要があります。
Stimulsoft . Report . Dictionary . StiCustomDatabase . registerCustomDatabase ( options ) ;オプションはプロパティのセットとprocess()関数であり、データを要求するときに呼び出されます。
serviceName :新しい接続を作成するときにデザイナーに表示されるデータベース名sampleConnectionString :新しい接続を設定する形で挿入された接続文字列のサンプルprocess :simitulsoft.report.engineにデータを準備および送信するために呼び出される関数。 2つの引数がprocess()関数の入力に送信されます: commandとcallback 。サンプル:
var options = {
serviceName : "MyDatabase" ,
sampleConnectionString : "MyConnectionString" ,
process : function ( command , callback ) {
if ( command . command == "TestConnection" ) callback ( { success : false , notice : "Error" } ) ;
if ( command . command == "RetrieveSchema" ) callback ( { success : true , types : demoDataTypes } ) ;
if ( command . command == "RetrieveData" ) callback ( { success : true , rows : demoDataRows , columns : demoDataColumns , types : demoDataTypes ] } ) ;
}
} command引数はJSONオブジェクトで、Stimulsoft.Report.Engineが次のパラメーターを転送します。
command :アクション、現時点で呼び出されています。可能な値:「 testConnection 」:新しい接続作成フォーム「 retrievesschema 」からデータベース接続をテストします。必要なデータセットを転送するだけでなく、リクエストを最適化するためにデータスキーマを取得する必要があります。接続作成後に呼び出されます「 Retrievedata 」:データリクエストconnectionString :接続文字列queryString :クエリ文字列database :データベースタイプtimeout :データソースで指定されたリクエストの待機時間サンプル:
command = {
command : "RetrieveData" ,
connectionString : "MyConnectionString" ,
queryString : "MyQuery" ,
database : "MyDatabase" ,
timeout : 30
} callback引数は関数であり、準備データをStimulsoft.Report.Engineに送信するように呼び出す必要があります。関数へのcallback引数として、次のパラメーターを使用してJSONオブジェクトを渡す必要があります。
success :成功したコマンド実行の旗notice :コマンド実行のフラグに誤った値がある場合、このパラメーターにはエラーの説明が含まれている必要がありますrows :文字列配列、各要素は値からの配列、インデックスは列番号ですcolumns :列名配列、インデックスは列番号ですtypes :フィールド名が列名で、値は列のタイプ{column_name: "string"}です。このタイプは、次の値「文字列」、「番号」、「 int 」、「 boolean 」、「 array 」、「 datetime 」を取得できます。の場合columnsアレイが送信され、タイプ配列をtypesに送信できます。インデックスは列番号にする必要があります。 「 retrievesschema 」では機能しません
command = " retrieveschema "の場合、さらにタイプでテーブル名をtypesに送信する必要があります。
スキーマを受信するときのリクエストと応答のサンプル:
request = {
command : "RetrieveSchema"
}
response = {
success : true ,
types : {
Table1 : {
Column1 : "string" ,
Column2 : "number"
} ,
Table2 : {
Column1 : "string"
}
}
}データを取得するときのリクエストと応答のサンプル:
request = {
command : "RetrieveData" ,
queryString : "Table1"
}
response = {
success : true ,
rows : [
[ "value1" , 1 ] ,
[ "value2" , 1 ] ,
[ "value3" , 2 ]
] ,
columns : [
"Column1" ,
"Column2"
] ,
types : [
"string" ,
"number"
]
}エラーの場合の応答のサンプル:
response = {
success : false ,
notice : "Error message"
}アダプター登録の例