الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تضمين الــ JDK و الـ ODBC

مغلقمُجاب
بدأه starking9b في 8 نوفمبر 2013 · 20 رد · 1,670 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم أخوتي في الله أنا عملت مشروع برنامج لتخزين بيانات موظفين في sql داتابيس عن طريق الجافا والمشروع خلص بفضل الله بس أنا بدي أبعت هالبرنامج لأشخاص أو مستخدمين عادينن كيف فيي أعمل البرنامج يشتغل بدون تنصيب ال jdk أو بيئة الجافا أو أذا ممكن تضمين ال jdk بملف التنصيب لأن بعملو تنصيب

وكيف فيي خلي البرنامج يتصل بقاعدة البيانات بدون ماروح ع الodbc  لأن المستخدم مارح يعرف يعمل الضبط

أو مارح يعجبو هيك

الله يخليكون للي عندو فكرة ياريت يفيدني وشكرا

#2 أفضل إجابة

السلام عليكم

 

  1. استخدم Launch4j لتحويل ملف الـ jar إلى exe.
  2. قم بنسخ الـ JRE إلى مجلد جديد في المشروع وضع المسار في خانة الـ Bundled JRE path.
  3. في الواجهة الرئيسية للبرنامج و بالتحديد في الـ tab الخاص بـ JRE, توجد قائمة مندلسة بجانب الـ Min JRE version اختر منها Prefer JDK runtime, but use public JRE if newer حيث سيتم تشغيل الـ JDK المُضمنة في المشروع إلا إذا كانت الـ JRE الموجودة على الجهاز أحدث منها.

 

بالتوفيق.

تم تعديل هذه المشاركة بواسطة Snack3r في 8 نوفمبر 2013 في 15:37

#3
Snack3r كتب:

السلام عليكم

 

  1. استخدم Launch4j لتحويل ملف الـ jar إلى exe.
  2. قم بنسخ الـ JRE إلى مجلد جديد في المشروع وضع المسار في خانة الـ Bundled JRE path.
  3. في الواجهة الرئيسية للبرنامج و بالتحديد في الـ tab الخاص بـ JRE, توجد قائمة مندلسة بجانب الـ Min JRE version اختر منها Prefer JDK runtime, but use public JRE if newer حيث سيتم تشغيل الـ JDK المُضمنة في المشروع إلا إذا كانت الـ JRE الموجودة على الجهاز أحدث منها.

 

بالتوفيق.

شكرا أخي الكريم ع المساعدة وجزاك الله عني كل خير بس قاعدة البيانات تبعت المشروع أنا عاملها ع الsql ووقت بدها تشتغل لازم أروح ع الodbc كيف فيي خليها تشتغل بدون هالحكي وخاصة أنو المستخدم مابيعرف يعملها

ووين الزم حط قاعدة البيانات بمشروعي يعني بأي مجلد قبل ماأعمل build للمشروع

#4
اقتباس

وين الزم حط قاعدة البيانات بمشروعي يعني بأي مجلد قبل ماأعمل build للمشروع

 

ضعها في مجلد جديد خاص بملفات قاعدة البيانات مثلا و قم بتحديد الـ URL بشكل ديناميكي, مثال :

getClass().getResource("/databases/data.sql")
#5
Snack3r كتب:

 

ضعها في مجلد جديد خاص بملفات قاعدة البيانات مثلا و قم بتحديد الـ URL بشكل ديناميكي, مثال :

getClass().getResource("/databases/data.sql")

أخي بشكر تعاونك وجزاك الله عني كل خير بس بصراحة مافهمت عليك

يعني هاد الصف تبع الداتا بيس تبعي وين لازم حط هالحكي اللي كتبتو

public boolean openCon() {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            java.util.Properties prop = new java.util.Properties();
            prop.put("charSet", "UTF8");
            prop.put("useUnicode", "yes");
            
            con = DriverManager.getConnection("jdbc:odbc:farouq2",prop);
            
            // stmt = con.createStatement();
         //    = con.createStatement();
            stat = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE );
            return !con.isClosed();
        }

وبالنسبة لل launcher 4j نزلتو وعملت ملف exe بس وقت بشغلو بيعطيني  (java exception has accoured) وجزاك الله عني كل خير

#6

بعدين أخي ال sql server ماعطاني قاعدة البيانات بلاحقة sql اللي عطانياهون هني بلاحقة mdf.     و .ldf

#7

إذا كنت تعمل على SQL Server فلديك حلان :

  1. إما أن يكون جهازك انت هو السيرفر و يحتوي على قاعدة البيانات و بالتالي سيتصل عليه الزبون عن بعد, في هذه الحالة قم بتمرير عنوان الـ ip الخاص بك في الـ URL تبع الـ constructor. (كتبتُ لك الكود لكن لم يظهر .. لا أدري لماذا !)
  2. أو قم بتثبيت SQL Server في جهاز الزبون و استخدم الـ Copy Database Wizard لنسخ قواعد البيانات الموجودة في السيرفر الخاص بك إلى السيرفر الجديد.

 

اقتباس
النسبة لل launcher 4j نزلتو وعملت ملف exe بس وقت بشغلو بيعطيني  (java exception has accoured)

 

اتبع التعليمات الموجودة في هذا الموضوع و اعد المحاولة.
و هذا ملف الـ XML رفعته لك كنموذج جاهز, يمكنك استيراده من البرنامج و العمل عليه :

example.xml

#8
Snack3r كتب:

إذا كنت تعمل على SQL Server فلديك حلان :

  1. إما أن يكون جهازك انت هو السيرفر و يحتوي على قاعدة البيانات و بالتالي سيتصل عليه الزبون عن بعد, في هذه الحالة قم بتمرير عنوان الـ ip الخاص بك في الـ URL تبع الـ constructor. (كتبتُ لك الكود لكن لم يظهر .. لا أدري لماذا !)
  2. أو قم بتثبيت SQL Server في جهاز الزبون و استخدم الـ Copy Database Wizard لنسخ قواعد البيانات الموجودة في السيرفر الخاص بك إلى السيرفر الجديد.

 

اتبع التعليمات الموجودة في هذا الموضوع و اعد المحاولة.

و هذا ملف الـ XML رفعته لك كنموذج جاهز, يمكنك استيراده من البرنامج و العمل عليه :

attachicon.gifexample.xml

هلأ أخي أنا عم أشتغل عال sql server لأن هيك علمونا بالجامعة . يعني عن طريق الsql server مافيي خلي البرنامج ياخد قاعدة البيانات بشكل تلقائي معقول أنا مابدي خلي البرنامج يشتغل عن طريق سيرفر ومخدم أنا بدي البرنامج يشتغل ع أي جهاز ببعتو ألو ولا تواخذني عم عذبك معي

تم تعديل هذه المشاركة بواسطة starking9b في 9 نوفمبر 2013 في 09:03

#9

اذا استخدم serverless database قاعدة بيانات لا تحتاج الى خادم MSAccess or SQLite or HSQLdb

 

وابتعد عن Oracle and SQLServer and MYSql


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#10
اقتباس

هلأ أخي أنا عم أشتغل عال sql server لأن هيك علمونا بالجامعة . يعني عن طريق الsql server مافيي خلي البرنامج ياخد قاعدة البيانات بشكل تلقائي معقول أنا مابدي خلي البرنامج يشتغل عن طريق سيرفر ومخدم أنا بدي البرنامج يشتغل ع أي جهاز ببعتو ألو ولا تواخذني عم عذبك معي

 

SQL Server عبارة عن برنامج يتم تنصيبه على "سيرفر" لإدارة و تسيير قواعد البيانات و بالتالي يجب التعامل معه على هذا الأساس :)

#12
Snack3r كتب:

بالمناسبة, هل حُلت مشكلة الـ JDK ؟

#14
Snack3r كتب:

شو يعني ؟؟ :mellow:

بارك الله فيك أخي هلأأنا نقلت قاعدة البيانات ع ال access بس بدي الطريقة أني وقت أعمل ملف jar وشغلو ع أي جهاز تاني ياخد قاعدة البيانات وياخد البيانات منها

يعني رجاء بدي شرح مفصل عن هي الطريقة  هلأ هاد هو كود ال الأتصال بالقاعدة وين لازم أحط قاعدة البيانات بالبرنامج تبعي وشو لازم أكتب بالكود

    
    public boolean openCon() {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            java.util.Properties prop = new java.util.Properties();
            prop.put("charSet", "UTF8");
            prop.put("useUnicode", "yes");
          String dataSourceName = "khaled";
String dbURL = "jdbc:odbc:" + dataSourceName;
Connection con = DriverManager.getConnection(dbURL, "","");  // add on to the end 
// now we can get the connection from the DriverManager
//Connection con = DriverManager.getConnection( database ,"",""); 
            
       //     con = DriverManager.getConnection("jdbc:odbc:muhammad",prop);
            
            // stmt = con.createStatement();
         //    = con.createStatement();
            stat = con.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE );
            return !con.isClosed();
        }

علما أني عم أخد القاعدة من odbc أنا مابدي هيك أنا بدي أعطيه عنوان قاعدة البيانات بأي مجلد وياخدها تلقائيا حتى وقت أنقل البرنامج ع جهاز تاني يقدر يشوف القاعدة ويشتغل عليها متل أي برنامج تاني

بالنسبة لل jdk تركتو هلأ لأني مشغول بمشكلة قاعدة البيانات

ولكم جزيل الشكر

#15

المشكلة ليست في الـ ODBC و إنما في طبيعة الـ DBMS الذي تعمل عليه فو لكنت تستخدم access مثلا لكان الامر بسيطاً لكن قواعد البيانات الموجودة في SQL Server لا يمكن نسخها بالسهولة التي تعتقد إذ لابد من تنصيب البرنامج على السيرفر المُراد العمل عليه و لا أعتقد أنه يوجد حل آخر (الحلول الممكنة ذكرتها انا و الأخ محمد فتحي في مشاركات سابقة).

 

 

تحياتي.

تم تعديل هذه المشاركة بواسطة Snack3r في 11 نوفمبر 2013 في 10:12

#16
Snack3r كتب:

المشكلة ليست في الـ ODBC و إنما في طبيعة الـ DBMS الذي تعمل عليه فو لكنت تستخدم access مثلا لكان الامر بسيطاً لكن قواعد البيانات الموجودة في SQL Server لا يمكن نسخها بالسهولة التي تعتقد إذ لابد من تنصيب البرنامج على السيرفر المُراد العمل عليه و لا أعتقد أنه يوجد حل آخر (الحلول الممكنة ذكرتها انا و الأخ محمد فتحي في مشاركات سابقة).

 

 

تحياتي.

أخي الأن أنا أستخد قاعدة بيانات أكسس ولكن لم أعرف ماذا أكتب في الكود كي يأخذ القاعدة اللتي في المشروع عندما أضع القاعدة في الsource name وأكتب اسم القاعدة وأشغل يعطيني الرسالة التالية

java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

#17

جرب :

String DATABASE_FILE_NAME = "accessDatabase.mdb";
String DRIVER = "jdbc:odbc:DRIVER=" +"{Microsoft Access Driver (*.mdb)};"
+"DBQ=" + new File (DATABASE_FILE_NAME).getAbsolutePath ();
#18
Snack3r كتب:

 

جرب :

String DATABASE_FILE_NAME = "accessDatabase.mdb";
String DRIVER = "jdbc:odbc:DRIVER=" +"{Microsoft Access Driver (*.mdb)};"
+"DBQ=" + new File (DATABASE_FILE_NAME).getAbsolutePath ();

أخي أسف على الأطالة و الأزعاج جرت ولكن نفس الأمر الخطأ ذاته

وشكرا

 

Snack3r كتب:

 

جرب :

String DATABASE_FILE_NAME = "accessDatabase.mdb";
String DRIVER = "jdbc:odbc:DRIVER=" +"{Microsoft Access Driver (*.mdb)};"
+"DBQ=" + new File (DATABASE_FILE_NAME).getAbsolutePath ();

تم تعديل هذه المشاركة بواسطة starking9b في 11 نوفمبر 2013 في 14:26

#19

هل تعمل على Windows 64 bit ؟

تم تعديل هذه المشاركة بواسطة Snack3r في 11 نوفمبر 2013 في 14:41

#20
Snack3r كتب:

هل تعمل على Windows 64 bit ؟

نعم أعمل على نظام 64 بت

#21
اقتباس

نعم أعمل على نظام 64 بت

 

توقعتُ ذلك :)

 

في أنظمة 64 بت يوجد اثنين من الـ ODBC administrators :

  • الأول موجود في المسار c:\Windows\system32\odbcad32.exe وهو خاص بتطبيقات 64 بت.
  • الثاني موجود في المسار c:\Windows\SysWOW64\odbcad32.exe وهو خاص بتطبيقات 32 بت.

استخدم الثاني و أخبرني بالنتيجة.

هذا الموضوع مغلق.

مواضيع مشابهة