delphi4arab منتديات دلفي للعرب

نسخة كاملة : ما هو افضل برنامج لتحزيم برنامجي المرتبط مع قاعدة بيانات sqlserver
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
لدي برنامج مبرمج بدلفي7   وقاعدة معطيات sqlserver
ما هو افضل برنامج لتحزيمه لكي انسخه في cd   اي يصبح جاهزا للتبيت في اي جهاز اخر
وهل ينجح مع قاعدة بينات sql Angel
السلام عليكم

ممكن تطرح لنا مشكلتك بالضبط ؟ لانو الحل ليس في برنامج التحزيم
أنا أقصد كيف أقوم بتحزيم البرنامج مع قاعدة SQL server
هل أنقل قاعدة البيانات الموجود في برنامج SQL الى ملف البرنامج ثم اقوم بالتحزيم
وماهو أفضل برنامج لذلك
عند تحزيم البرنامج وتثبيته في جهاز اخر

هل يعمل

مشكل في اتصال مع قاعدة بيانات
السلام عليكم

أفهم من كلامك أن برنامجك يعمل مع قاعدة SQL server و تريد تحزمه مع القاعدة ؟ لعمل كتلة واحدة بدون تنصيب زبون SQL server
نعم أخي لؤي ذاك هو المقصود

اريد تحزيم برنامجي لكي يعمل في جهاز آخر
يوجد الكثير من برامج التحزيم منها المجاني ومنها غير ذلك.
install aware
create install free
ولكن بالنسبة لقاعدة البيانات وملفاتها mdf و log file, يجب أن تقوم بوضعها عند جهاز الزبون في my document او في appdata, وإلا فإنها لن تعمل.

و أيضا يجب أن تكون جاهز للإتصال بها في ذلك المكان أما بشكل مباشر أو أن تربطها مع sql server موجود, حسب الغرض منها.
install creator عن تجربة سهل للتحزيم وبه خيارات عديدة
فقط للأخ PLANSHARP
ممكن توضيح تحزيم التطبيق للخادم وللعميل
وما يجب تنصيبه عند الخادم عند تنصيب التطبيق
ومايجب تنصيبه عند العميل
انتظر جوابا مفصلا وواضحا وشكر مسبق
في حال استخدام قاعدة بيانات ليتم استخدامها من قبل مستخدمين على الشبكة:
فإن تحزيم التطبيق و استخدامه عند الخادم يحتاج إلى أن تنسخ قاعدة البيانات إلى مكان آمن مثل Appdata أو mydoc, ومن ثم تقوم بعمل attach لها على السيرفر الحالي.
بالنسبة لل attach , هناك العديد من الطرق:
1-عند طريق استخدام create database statement
2- أو sys.sp_attach_db
3- أو sys.sp_attach_single_file_db

فمثلا لإستخدام الطريقة الأولى, يمكنك عمل batch file وتنفيذه عند الإنتهاء من تنصيب البرنامج:
هذا الملف سيحتوي على التالي:
PHP كود :
sqlcmd -S Server\Instance


USE [master]
GO
CREATE DATABASE 
[test] ON 
( FILENAME = N'<path to database file>\test.mdf' ),
( 
FILENAME = N'<path to log file>\test_log.ldf' )
 FOR 
ATTACH ;
GO 

في حال كان السيرفر يحتوي على instance واحد و افتراضي يمكن كتابة ip السيرفر أو اسم السيرفر فقط. عند أول سطر.

طبعا يجب أن يكون لهذا المستخدم الحالي صلاحيات الولوج إلى sql server

وهكذا تكون قد نصبت برنامجك و ربطت ملفات قاعدة البيانات مع السيرفر.

أما عند جهاز الزبون فأنت لست بحاجة إلى تضمين ملفات ال database مع التحزيم, أنت بحاجة إلى تحزيم ال sql server native client الخاص بالنسخة التي تعمل عليها.
حتى يستطيع هذا الأخير من الإتصال بالسيرفر.

بالنسبة لطريقة تضمين هذا الأخير مع التحزيم, إذا لم تكن هذه الميزة موجودة في برنامج التحزيم الذي تستعمله, فيمكنك أيضا عمل batch file و تنفيذه في أحد مراحل التنصيب.
هذا ال batch file سيحتوي على script تنصيب ال sql server native client ولكن بشكل صامت كالآتي:

PHP كود :
msiexec /i <filename> /qn IACCEPTSQLNCLILICENSTERMS=YES 

filename.exe هو يجب أن يكون اسم ملف ال native client  الخاص بنسخة قاعدة البيانات المستخدمة.

كل ما سبق كان بالنسبة لقاعدة بيانات تستخدم من قبل عدة مستخدمين على الشبكة.

أما في حال عمل برنامج يستخدم ملفات sql server من أجل مستخدم واحد فقط و ليش للإستخدام الشبكي, فهنا يمكن أن يكون الإتصال مع ملفات قاعدة البيانات عن طريق الدلفي مباشرة
وذلك عن طريق استخدام محرك local db و كتابة ال connection string إذا كنت تستخدم ado كالآتي: (طبعا بعد نسخ ملفات ال database إلى مكان آمن كما ذكرت مسبقا).

كود :
ADOConnection1.ConnectionString :=      'Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;User ID="";Initial Catalog="";Data Source=(localdb)\v11.0;Initial File Name=' +  '<path of mdf>\<name>.mdf;DataTypeCompatibility=80;Server SPN=""'; ADOConnection1.Connected := True;

v11.0, تعود إلى نسخة ال local db المستخدمة.

وهنا أيضا يجب تثبيت ملف ال native client و ملف ال engine الخاص بالنسخة المستخدمة و ذلك عن طريق ملف batch كالآتي:
PHP كود :
msiexec /i <filename> /qn IACCEPTSQLNCLILICENSETERMS=YES
msiexec 
/i <filename> /qn IACCEPTSQLLOCALDBLICENSETERMS=YES 

ولا تنسى أن بعض أجهزة الزبائن منها 32 بت و منها 64 بت, فيجب اختيار الملفات المناسبة, وإذا كنت تواجه صعوبة في تحديد ذلك عن طريق برنامج التحزيم, يمكنك تثبيت الكل بشكل صامت و النظام سيقبل تثبيت النسخة المناسبة له تلقائيا.

وأخيرا أتمنى أن يكون هذا واضح بعض الشيء, وفق الله الجميع لما يحب و يرضى.
شكرا لكم جميعا
شرح ممتاز يفي بالغرض المطلوب