نظرًا لأن JavaScript Pure لا يحتوي على طرق مدمجة للعمل مع قواعد البيانات عن بُعد ، يتم تنفيذ هذه الوظيفة باستخدام رمز من جانب الخادم. لذلك ، يحتوي منتج Stimulsoft Remords.js على محولات بيانات الخادم التي يتم تنفيذها باستخدام تقنيات PHP و Node.js و ASP.NET و Java.
محول قاعدة البيانات عبارة عن طبقة برامج بين DBMs وبرنامج النصي العميل. يتصل المحول بـ DBMS ويسترجع البيانات اللازمة ، وتحويلها إلى JSON. يوفر البرنامج النصي الذي يعمل على الخادم (باستخدام المحول) تبادل بيانات JSON بين تطبيق JavaScript من جانب العميل وجانب الخادم.
لاستخدام هذه الآلية على جانب العميل ، يجب عليك تحديد عنوان عنوان URL لمحول المضيف ، والذي يعالج الطلبات إلى محول مطلوب
روابط للأمثلة مع محولات البيانات الجاهزة ، يتم تنفيذها لمختلف المنصات:
من السهل استخدام محول.
يجب عليك تشغيل محول وتحديد عنوانه:
StiOptions . WebServer . url = "http://localhost:9615" ; عند طلب البيانات من مصادر بيانات SQL ، يرسل stimulsoft.report.engine طلبًا آخر إلى عنوان URL ، المحدد في الخيار:
StiOptions . WebServer . url = "https://localhost/handler.php" ;يتم تمرير كائن JSON مع المعلمات في نص الطلب الذي يستخدم الهيكل التالي:
command : نوعان ممكنان - " TestConnection " и " executequery "connectionString : سلسلة اتصال قاعدة البياناتqueryString : سلسلة الاستعلامdatabase : نوع قاعدة البياناتtimeout : وقت انتظار الطلب ، المحدد في مصدر البياناتparameters : مجموعة من المعلمات ككائن JSON {name ، value}escapeQueryParameters : علم المعلمات التدريع قبل طلبرداً على ذلك ، تتوقع stimulsoft.report.engine كائن JSON مع البيانات في شكل الهيكل التالي:
success : علم تنفيذ الأوامر الناجحةnotice : إذا كان لعلم تنفيذ الأمر القيمة الخاطئة ، فستحتوي هذه المعلمة على وصف خطأrows : صفيف السلاسل ، كل عنصر هو مجموعة من القيم ، الفهرس هو رقم العمودcolumns : مجموعة من أسماء الأعمدة ، الفهرس هو رقم العمودtypes : مجموعة من أنواع الأعمدة ، الفهرس هو رقم العمود. يمكن أن يأخذ القيم " سلسلة " ، " رقم " ، " int " ، " منطقية " ، " صفيف " ، " DateTime "checkVersion : علامة اختيارية ، والتي تعطل فحص إصدار محول البيانات وإصدار stimulsoft.report.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 ;قم بتعطيل فحص إصدار محول البيانات وإصدار stimulsoft.report.engine.
أيضًا ، يمكنك تسجيل نوع قاعدة البيانات الخاصة بك. للقيام بذلك ، يجب أن تستدعي الوظيفة مع الخيارات:
Stimulsoft . Report . Dictionary . StiCustomDatabase . registerCustomDatabase ( options ) ; الخيارات هي مجموعة الخصائص ودالة process() ، والتي سيتم الاحتجاج بها عند طلب البيانات:
serviceName : اسم قاعدة البيانات الذي سيتم عرضه في المصمم عند إنشاء اتصال جديدsampleConnectionString : عينة من سلسلة الاتصال التي يتم إدخالها في شكل إعداد اتصال جديدprocess : الوظيفة ، التي سيتم استدعاؤها لإعداد البيانات ونقلها إلى stimulsoft.report.engine يتم نقل وسيطين إلى مدخلات وظيفة 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 ": اختبر اتصال قاعدة البيانات من نموذج إنشاء الاتصال الجديد " RetrievesChema ": هناك حاجة إلى استرداد مخطط البيانات لتحسين الطلب وليس فقط لنقل مجموعة البيانات اللازمة. إنه يستدعي بعد إنشاء الاتصال " Retrievedata ": طلب البياناتconnectionString : سلسلة اتصالqueryString : سلسلة الاستعلامdatabase : نوع قاعدة البياناتtimeout : وقت انتظار الطلب ، المحدد في مصدر البياناتعينة:
command = {
command : "RetrieveData" ,
connectionString : "MyConnectionString" ,
queryString : "MyQuery" ,
database : "MyDatabase" ,
timeout : 30
} وسيطة callback هي الوظيفة ، التي ينبغي استدعاءها لنقل البيانات المعدة إلى levulsoft.report.engine. كوسيطة callback للوظائف ، يجب عليك تمرير كائن JSON مع المعلمات التالية:
success : علم تنفيذ الأوامر الناجحةnotice : إذا كان لعلم تنفيذ الأمر القيمة الخاطئة ، فيجب أن تحتوي هذه المعلمة على وصف خطأrows : صفيف السلاسل ، كل عنصر هو الصفيف من القيم ، الفهرس هو رقم العمودcolumns : صفيف اسم الأعمدة ، الفهرس هو رقم العمودtypes : الكائن الذي يكون فيه اسم الحقل هو اسم العمود والقيمة هو نوع العمود {column_name: "string"}. يمكن للنوع أن يأخذ القيم التالية " سلسلة " ، " رقم " ، " int " ، " منطقية " ، " صفيف " ، " DateTime ". إذا سيتم إرسال مجموعة columns ، وستتمكن من نقل أنواع الأنواع إلى types ، يجب أن يكون الفهرس رقم العمود. لا يعمل مع " Retrieveschema "
إذا كان 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"
}مثال تسجيل المحول