سؤال

إذا كان ذلك ممكنًا، فأنا مهتم بالقدرة على تضمين قاعدة بيانات PostgreSQL، على غرار com.sqllite.لقد قرأت أنه غير ممكن.أنا لست خبيرًا في قواعد البيانات، لذا أريد أن أسمع منك.

أريد بشكل أساسي PostgreSQL بدون كل عمليات التكوين والتثبيت.إذا كان ذلك ممكنا، قل لي كيف.

هل كانت مفيدة؟

المحلول

ما لم تقم بإعادة كتابة التعليمات البرمجية بشكل كبير، فلن يكون من الممكن تشغيل Postgres "مضمنًا".إما تشغيلها كعملية منفصلة أو استخدام شيء آخر.SQLite هو خيار ممتاز.ولكن هناك آخرون.يحتوي MySQL على نسخة مضمنة.شاهده في http://mysql.com/oem/.بالإضافة إلى العديد من خيارات جافا، ويحتوي Mac على بيانات أساسية يمكنك كتابتها أيضًا.الجحيم، يمكنك حتى استخدام FoxPro.ما هو نظام التشغيل الذي تستخدمه وما هي الخدمات التي تحتاجها من قاعدة البيانات؟

نصائح أخرى

لا يمكنك تضمينه، ولا يجب أن تحاول.

للتضمين يجب عليك استخدام com.sqlite كما ذكرت أو فايربيرد rdbms.

قم بتشغيل postgresql في عملية الخلفية.

ابدأ سلسلة منفصلة في التطبيق الخاص بك والتي من شأنها أن تبدأ خادم postgresql في الوضع المحلي إما عن طريق ربطه بالمضيف المحلي مع بعض المنافذ الحرة العشوائية أو باستخدام المقابس (هل يدعم Windows المقابس؟).يجب أن يكون ذلك سهلاً إلى حد ما، مثل:

system("C:\Program Files\MyApplication\pgsql\postgres.exe -D C:\Documents and Settings\User\Local Settings\MyApplication\database -h 127.0.0.1 -p 12345");

ثم اتصل فقط بـ 127.0.0.1:12345.

عند إنهاء التطبيق الخاص بك، يمكنك دائمًا إرسال SIGTERM إلى سلسلة الرسائل الخاصة بك ثم الانتظار بضع ثوانٍ حتى يتم إنهاء postgresql (أي الانضمام إلى سلسلة المحادثات).

ملاحظة:تستطيع ايضا استخذام pg_ctl للتحكم في قاعدة البيانات "المضمنة"، حتى بدون وجود سلاسل رسائل، ما عليك سوى إجراء "pg_ctl start" (مع الخيارات المناسبة) عند بدء تشغيل التطبيق و"pg_ctl stop" عند الخروج منه.

لا يمكنك تضمينه كنوع قيد المعالجة مثل sqlite وما إلى ذلك، ولكن يمكنك تضمينه بسهولة في إعداد التطبيق الخاص بك باستخدام إعداد Inno على http://www.innosetup.org.ابحث في أرشيف القائمة البريدية الخاصة بهم وستجد شخصًا قام بمعظم العمل نيابةً عنك وكل ما عليك هو الحصول على التوزيعة المضغوطة ويمكنك بسهولة تثبيت postgresql عندما يقوم المستخدم بتثبيت تطبيقك.يمكنك بعد ذلك استخدام ملف pg_hba.conf لتقييد الخادم بالمضيف المحلي فقط.ليست قاعدة بيانات مضمنة حقيقية، ولكنها ستنجح.

تم تصميم PostgreSQL للعمل كخادم مستقل؛ربما يكون من الممكن تضمينه إذا قمت باختراقه بشدة ولفترة كافية، ولكن سيكون من الأسهل بكثير تشغيله على النحو المنشود في عملية منفصلة.

HSQLDB (http://hsqldb.org/) هو قاعدة بيانات أخرى يمكن دمجها بسهولة.يتطلب Java، ولكنه خيار ممتاز وكثير الاستخدام لتطبيقات Java.

هل جرب أي شخص نظام التشغيل Mac OS X:

http://pagesperso-orange.fr/bruno.gaufier/xhtml/prod_postgresql.xhtml

http://www.macosxguru.net/article.php?story=20041119135924825

(بالطبع سيكون sqlite هو قاعدة البيانات المضمنة المفضلة لدي أيضًا)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top