![]() |
|
ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ (/showthread.php?tid=12391) الصفحات:
1
2
|
ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - ALG2009 - 15-09-2023 السلام عليكم هل هناك تحسين في الفايربيرد4 بالنسبة لدمج قاعدة البيانات مع البرنامج دون تثبيت الفايربيرد في جهاز الكميوتر هل بنفس الطريقة أن نرفق البرنامج بالملفات التالية: fbembed.dll firebird.msg ib_util.dll icudt30.dll icuin30.dll icuuc30.dll ونقوم بكتابة الكود في oncreate للفورم
PHP كود : [align=right]procedure TForm1.FormCreate(Sender: TObject);أليس الأمر متعب بأن تكتب أسماء كل الجداول ثم نقوم بفتح كل جدول على حدى
وكذلك نقوم بفتح كل كويري على حدى فلو قمنا بنسيان جدول أو كوري لا يعمل البرنامج بطريقة صحيحة هل من حلول أفضل أو هناك تحسينات في الفايربيرد4
RE: ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - أبو معاذ - 16-09-2023 وعليكم السلام ورحمة الله وبركاته. السؤال المطروح ، لماذا تقوم بفتح جميع الجداول و الاستعلامات في الحدث OnCreate ؟ افتح الجدول عندما تحتاج إليه فقط ، و لا تنس إغلاقه عندما تنتهي الحاجة منه. RE: ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - ALG2009 - 16-09-2023 هل تقصد أني أكتب هذا الكود فقط في oncreate كود : var FolderApplication:String;
begin
FolderApplication:=ExtractFilePath(ParamStr(0));
dmData.FDPhysFBDriverLink1.Release;
dmData.FDPhysFBDriverLink1.DriverID := 'FB';
dmData.FDPhysFBDriverLink1.VendorHome := EmptyStr;
dmData.FDPhysFBDriverLink1.VendorLib := FolderApplication+'\bin\fbclient.dll';
dmData.FDPhysFBDriverLink1.Embedded := True;
dmData.myConn.Connected := False;
dmData.myConn.DriverName := 'FB';
dmData.myConn.Params.Values['Port'] := '3050';
dmData.myConn.Params.Values['Protocol'] := 'local';
dmData.myConn.Params.Values['Server'] := EmptyStr;
dmData.myConn.Params.Values['CharacterSet'] := 'UTF8';
dmData.myConn.Params.Values['SQLDialect'] := '3';
dmData.myConn.Params.Values['Database'] := FolderApplication+'Database.fdb';
dmData.myConn.Params.Values['User_Name'] := 'sysdba';
dmData.myConn.Params.Values['Password'] := 'masterkey';
dmData.myConn.Params.Values['ExtendedMetadata'] := 'True';
var FolderApplication:String;
begin
FolderApplication:=ExtractFilePath(ParamStr(0));
dmData.FDPhysFBDriverLink1.Release;
dmData.FDPhysFBDriverLink1.DriverID := 'FB';
dmData.FDPhysFBDriverLink1.VendorHome := EmptyStr;
dmData.FDPhysFBDriverLink1.VendorLib := FolderApplication+'\bin\fbclient.dll';
dmData.FDPhysFBDriverLink1.Embedded := True;
dmData.myConn.Connected := False;
dmData.myConn.DriverName := 'FB';
dmData.myConn.Params.Values['Port'] := '3050';
dmData.myConn.Params.Values['Protocol'] := 'local';
dmData.myConn.Params.Values['Server'] := EmptyStr;
dmData.myConn.Params.Values['CharacterSet'] := 'UTF8';
dmData.myConn.Params.Values['SQLDialect'] := '3';
dmData.myConn.Params.Values['Database'] := FolderApplication+'Database.fdb';
dmData.myConn.Params.Values['User_Name'] := 'sysdba';
dmData.myConn.Params.Values['Password'] := 'masterkey';
dmData.myConn.Params.Values['ExtendedMetadata'] := 'True';
والجداول والاستعلامات يتم فتحها في زر الإضافة مثلا؟ نفرض أن البرنامج عند فتحه يقوم بعرض قائمة الطلاب في الواجهة الأساسية هنا يجب فتحهم في الحدث oncreate هل هناك برنامج صغير به عملية الاتصال دون تثبيت قاعدة البيانات فايربيرد؟ RE: ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - أبو معاذ - 16-09-2023 نعم. في الحدث oncreate للفورم الرئيسي قم بفتح قاعدة البيانات. أما عندما تستدي الفورم الخاص بالطلاب ، قم بفتح جدول الطلاب فقط في الحدث oncreate. ولا تنس إغلاقه عند غلق الفورم. هل تستعمل الsql في برنامجك؟ 2-لم إفهم طلبك عن برنامج صغير . اوضح أكثر. RE: ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - ALG2009 - 17-09-2023 (16-09-2023, 09:44 PM)أبو معاذ كتب : هل تستعمل الsql في برنامجك؟ نعم أقصد إن كان هناك برنامج يوضح عملية الاتصال بقاعدة البيانات دون التثبيت بطريقة إحترافية RE: ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - Delphi4Us - 18-09-2023 وعليكم السلام ورحمة الله يمكن ذلك بشكل مباشر ايضا كود : data1.Uni1.Database:= path+'\DB.FDB';
data1.Uni1.SpecificOptions.Values['Clientlibrary'] := Path + '\fbembed.dll';حيث Uni1 هو TUniConnection مكون الاتصال ويمكن استخدام نفس الشئ مع مكون FDConnection حيث يمكن الوصول للخصائص او العناصر عن طريق [params] RE: ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - ALG2009 - 18-09-2023 أين توضع في الخصائص https://ibb.co/fx4T0bX RE: ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - Delphi4Us - 20-09-2023 يبدو ان فايرداك لا يمكن الوصول لتلك الخصائص له عن طريق كائن الاتصال مباشرة بعدما اطلعت عليه طريقتك تبدو صحيحة ربما فقط تحتاج الى تعديل وترتيب حسبما رأيت يوجد ملف INI يمكن ضبط اعدادات تكوين الاتصال للمكون بحيث تصبح ثابتة كلما اخترت نوع من قواعد البيانات يتم وضع هذه الاعدادات ألياً . ومسار الملف هنا : كود : C:\Users\Public\Documents\Embarcadero\Studio\FireDAC\FDDrivers.iniيصف كيفية تكوين برامج تشغيل FireDAC DBMS، بما في ذلك كيفية تحديد مكتبة عملاء DBMS. لربط برنامج تشغيل FireDAC بأحد التطبيقات، حدد عميل DBMS لبرنامج التشغيل والمعلمات الاختيارية الأخرى. قد يستخدم التطبيق مكونات TFDPhysXxxDriverLink و/أو ملف تكوين خارجي. [size=1]ملف تكوين برنامج التشغيل[/size] ملف تكوين برنامج التشغيل هو ملف نصي INI قياسي. ولا يمكن تحريره إلا يدويًا. في الأساس، يتيح لك ملف تكوين برنامج التشغيل ما يلي:
نموذج لمحتوى ملف تكوين برنامج التشغيل كود : [ASA]
; ASA base driver will use specified ODBC driver
ODBCDriver=Adaptive Server Anywhere 8.0
[Ora815]
; Ora815 virtual driver will use specified Oracle Home
BaseDriverID=Ora
VendorHomeWin32=OraHome815
VendorHomeWin64=OraHome815_64
[MySQL327]
; MySQL327 virtual driver will use specified LIBMYSQL.DLL
BaseDriverID=MySQL
VendorLib=c:\LIBMYSQL327.DLL
[MySQL510_Embedded]
; MySQL510_Embedded virtual driver will use specified MySQL embedded library and arguments
BaseDriverID=MySQL
VendorLib=c:\LIBMYSQLD.DLL
EmbeddedArgs=--datadir=./data;--language=./;--skip-innodb;--skip-networking
[MSSQL_2000]
; MSSQL_2000 virtual driver will use specified ODBC driver
BaseDriverID=MSSQL
ODBCDriver=SQL SERVER
ODBCAdvanced=
[FB21]
; FB21 virtual driver will use specified Firebird client library
BaseDriverID=FB
VendorLibWin32=C:\ib\fb21\bin\fbclient.dll
VendorLibWin64=C:\ib\fb21_64\bin\fbclient.dll
[FB21_Embedded]
; FB21_Embedded virtual driver will use specified Firebird client library
BaseDriverID=FB
VendorLib=C:\ib\fb21_embed\bin\fbembed.dllوهنا يمكنك ان ترى اخر اعدادات خاصة بفايربيرد المضمن fbembed.dll تكوين برامج التشغيل في التعليمات البرمجية يمكنك أيضًا تكوين برامج تشغيل FireDAC في رمز التطبيق في وقت التشغيل. للقيام بذلك، قم بإسقاط مكونات TFDPhysXXXDriverLink المناسبة في النموذج الخاص بك. وله نفس الخصائص المسماة مثل المعلمات الموجودة في ملف تكوين برنامج التشغيل. يجب تعيين خصائص مكون الارتباط قبل فتح أول اتصال بنظام إدارة قواعد البيانات (DBMS) من خلال برنامج التشغيل هذا. يوضح نموذج التعليمات البرمجية التالي كيفية تكوين برنامج تشغيل Firebird في وقت التشغيل: كود : interface
uses
..., FireDAC.Phys.FB;
type
TForm1 = class(TForm)
......
FDPhysFBDriverLink1: TFDPhysFBDriverLink;
FDConnection1: TFDConnection;
procedure FormCreate(Sender: TObject);
......
end;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
FDPhysFBDriverLink1.VendorLib := 'C:\ib\fb21_embed\bin\fbembed.dll';
FDConnection1.ConnectionDefName := 'FB_Demo';
FDConnection1.Connected := True;
end;يستخدم الاتصال التالي باستخدام برنامج التشغيل هذا خصائص الارتباط الجديدة. يوضح نموذج التعليمات البرمجية التالي كيفية تغيير تكوين برنامج تشغيل Firebird في وقت التشغيل: كود : FDConnection1.Close;
FDPhysFBDriverLink1.Release;
FDPhysFBDriverLink1.VendorLib := 'C:\fbclient.dll';
FDConnection1.Open;إقتباس :ملاحظة : على الرغم من أنه من الممكن استخدام مكونات الارتباط لتكوين برامج التشغيل في وقت التصميم، إلا أننا لا نوصي بذلك، لأنه من الصعب تحميل وحدة بمكون ارتباط قبل تحميل أي وحدة نمطية أخرى بمكونات FireDAC. ولذلك، يقوم مكون الارتباط بتكوين برنامج التشغيل بشكل صحيح.
كود : DriverID=FB
Database=C:\fb\ADDEMO_FB21.FDB
Protocol=TCPIP
Server=FBSrv
User_Name=sysdba
Password=masterkey
CharacterSet=win1252
ExtendedMetadata=True
كود : DriverID=FB
Database=FBSrv:C:\fb\ADDEMO_FB21.FDB
User_Name=sysdba
Password=masterkey
CharacterSet=utf8
كود : DriverID=FB
Database=C:\fb\ADDEMO_FB21.FDB
User_Name=sysdba
Password=masterkey
CharacterSet=win1251
كود : DriverID=FB
Database=C:\fb\ADDEMO_FB21.FDB
User_Name=sysdba
CharacterSet=utf8RE: ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - ALG2009 - 22-09-2023 جواكم الله خير جاري التجربة RE: ماهي أفضل طريقة لدمج قاعة بيانات فايربيرد مع البرنامج؟ - S.FATEH - 23-09-2023 السلام عليكم اذا واجهتك مشاكل حاول إعادة تسمية fbembed.dll إلى fbclient.dll ملاحظة لم اجربها.. |