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

لدي نصوص كبيرة اريد تخزينها

بدأه ماكسيموس في 28 مارس 2008 · 39 رد · 3,963 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

لدي سؤال وأتمنى ان يكون له اجابة

عند تخزين اسم مثلا في الجافا فلابد من تخزينه في متغير من نوع String

ولكن اذا كان لدي نص كبير جداً اريد تخزينه مثل اي موضوع هنا في المنتدى

هل يتم تخزينه في متعير من نوع String

ام يتم تخزينه في متغير من نوع String ولكن من نوع Object

ام يتم تخزينه في مصفوفة ...

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

لان المشكلة ظهرت لي في عملية تخزين النص وهذا اكتشفته بعد محاولات عديدة ...

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

اتمنى ان يكون لسؤالي اجابة ليس كمثل باقي الاسئلة التي اطرحها ...

#2

إذا مالي غلطان, ضع النص في مصفوفة. أو ممكن تخنزه في ملف من نوع txt

Chao!!!

Great place, and people, but full of sectarianism.

#3
da666ni كتب:
إذا مالي غلطان, ضع النص في مصفوفة. أو ممكن تخنزه في ملف من نوع txt

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

قمت بالتالي ... عرفت مصفوفة غير محدودة وقمت باضافة النص في المصفوفة ... وعند عملية التخزين يحدث خطا ...

ولكن لقد ذكرت طريقة وهي عن طريق txt ... اتمنى ان توضح لي اكثر

#4

1. يا ريت لو بتحط شو الخطأ.

2. بالنسبة لملف ال txt, اي تعاملك مع الملفات(للأسف زمان ما اشتغلت على ال Java, و مالي ذاكر الكود)

Chao!!!

Great place, and people, but full of sectarianism.

#5

الخطا كالتالي :

java.sql.SQLException : syntax error or eccess violation message from server

you have have error in your sql syntax : check the manual that corresponds to your my sql server version for the rigth syntax to use near "textarea2"

هذه الرسالة هي التي تظهر عند حدوث الخطا ... مع العلم اني اذا قمت باضافة نص مكون من سطر او اقل يضاف الى قاعدة البيانات

#6

ما قاعدة البيانات التي تستخدمها يا أخي

وما نوع المتغير الذي تخزن فيه نصوصك؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7
اقتباس
in your sql syntax

الخطآ يبدو من السينتاكس لجملة السقول وليس لآن المتغير سترنق او ماشابه

تآكد ان السترنق صحيحه ك سينتاكس

#8

السلام عليكم ..

كما قال الاخ alaadiaa :

اقتباس
ما قاعدة البيانات التي تستخدمها يا أخي

وما نوع المتغير الذي تخزن فيه نصوصك؟

لاحظ اخي عيسى ان Jsp قال :

اقتباس
مع العلم اني اذا قمت باضافة نص مكون من سطر او اقل يضاف الى قاعدة البيانات

فأتصور ان الخطأ انك لم تحدد نوع بيانات كبير في حقل قاعدة البيانات لإستقبال المتغير الذي من نوع استرنج .. مثلاً اذا كنت تستخدم الاكسس ، فإختار النوع memo

لا اله الا الله .. محمد رسول الله

(* ربِ اجعلني مقيم الصلاة و من ذريتي ، ربنا و تقبل دعـاء *)

يا حيّ يا قيـوم ... برحمتك استغيث ... اصلح لي شأني كله و لا تكلني الى نفسي طرفة عين

#9
alaadiaa كتب:
ما قاعدة البيانات التي تستخدمها يا أخي

وما نوع المتغير الذي تخزن فيه نصوصك؟

تحياتي

شاكر لك اخي 'alaadiaa'

وبالنسبة لقاعدة البيانات فانا استخدم MYSQL

وبالنسبة ايضا للمتغير الذي اخزن فيه النصوص هو من نوع : longtext

عيسى عايد العنزي كتب:
الخطآ يبدو من السينتاكس لجملة السقول وليس لآن المتغير سترنق او ماشابه

تآكد ان السترنق صحيحه ك سينتاكس

شاكر لك اخي عيسى

ولا تواقع ان المشكلة في السنتاكس ... لماذا لا تسئلني الآن ... مجرد تخمين

ولكي تكون في الصورة سوف اضع لك السنتاكس للجملة ... ولاحظة ان المتغير theme هو الذي اخزن في النصوص وهو من نوع String

String theme = theme;

"insert into theme (Content) values ('"+theme+"')"

بنت اليمن كتب:
فأتصور ان الخطأ انك لم تحدد نوع بيانات كبير في حقل قاعدة البيانات لإستقبال المتغير الذي من نوع استرنج .. مثلاً اذا كنت تستخدم الاكسس ، فإختار النوع memo

شاكر لك اختي بنت اليمن

ولكن ايضا لا اتوقع ان المشكلة في قاعدة البيانات ... السبب ... كما قلت مجرد تخمين ...!!

فعندما اضيف مثلا جملة : منتدى مبرمجو العرب ... لا تحدث هنالك اي مشكلة ...

ولكن عندما اضيف نص كالتالي لا يضيف ويظهر لي الخطا السابق ...مع العلم اني قمت بتغير نوع المتغير في قاعدة البيانات من longtext الى text ... وما تزال المشكلة قائمة ...

الخــوف مـن الـظــلام ...!!







بسم الله الرحمن الرحيم





والحمد لله والصلاة والسلام على اشرف الأنبياء والمرسلين نبينا محمد عليه أفضل الصلاة وأتم التسليم .. اللهم علمنا ما ينفعنا وأنفعنا بما علمتنا وزدنا علما ... أما بعد ...





قبل كل شيء أحب أن أسالك سؤالاً بسيطاً ... هل أنت تخاف من الظلام ..؟





ببساطة أعتقد أن جوابك سوف يكون بلا على هذا السؤال ..!!



أحب أن أقول لك انك لن تستطيع أن تجيب على هذا السؤال الآن والسبب في أن السؤال لن يكون مفهوم لك بدرجة كبيرة ... وقد تتساءل أو يتبادر لذهنك ما معنى هذه الجملة وما مغزاها الحقيقي في أن توضع سؤال في بداية الموضوع ...
 بمعنى آخر ماذا تعني هذه الجملة بما أنها وضعت عنواناً لموضوع وفي الأخير تأتي هذه الجملة أو العنوان كسؤال في أول الموضوع ... فالجملة مكونه من اسمين وبينهما حرف جر ..!!



الخوف : مبتدأ مرفوع وعلامة رفعة الضمة ..!!

من : حرف جر ..!!

الظلام : اسم مجرور وعلامة جرة الكسرة ..!!



والجملة الاسمية المكونة من حرف الجر (من) والاسم المجرور (الظلام) في محل رفع خبر للمبتدأ ..!!





لم تصل إلى معنى هذه الجملة أليس كذلك ... في الحقيقة هذه الجملة قرأتها في موضوع عن الدولة البريطانية التي قال شعبها أننا نخاف من الظلام ... انتم تعلمون عن دولة بريطانيا وعن الإمبراطورية التي كانت لهم ... فالإمبراطورية التي كانت لهم بسبب هذه الجملة أنهم يخافون من الظلام 
... فهم خافوا من الظلام ولهذا فأنهم كونوا اكبر إمبراطورية لا تغرب عنها الشمس .. وقد توسعت هذه الإمبراطورية من قارة أوروبا غرباً إلى حدود شرق قارة آسيا ... ولهذا فان الشمس لا تغرب عنها أبدا ...





فإذا غربت في الشرق أشرقت في الغرب وإذا غربت في الغرب أشرقت في الشرق ... ومن هذا وذاك فانك لو سالت أي شخص في هذه الدولة كيف تأسست هذه الإمبراطورية ... 
ببساطة لأجابك هذا الشخص لم نؤسس هذه الدولة إلا بسبب أننا نخاف من الظلام ... ولهذا أصبحت لهم اكبر إمبراطورية عرفها التاريخ ..!!

ما يزيدني حيرة ... عندما اضيف نص ليس كالنص السابق بل اكبر واطول منه مرتين في قاعدة البيانات وذلك عن طريق الدخول الى قاعدة البيانات

لا تحدث لي اي مشكلة ولا يكون هنالك اي خطا

ولكن عندما اريد الاضافة عن طريق البرنامج لا يضيف ... السبب ...............؟

اين المشكلة اذن ... اتمنى ان للجافا تتحدث لكي تنطق لي بالجواب عندما اسالها اين المشكلة ...

تم تعديل هذه المشاركة بواسطة Jsp في 29 مارس 2008 في 02:53

#10

هل جربت أخرى؟

جرب مثلاً Access

بالذات MySQL

تسبب مشاكل كثيرة

هل جربت نسخة أخرى من MySQL ؟

إن كانت قديمة فحدثها وإن كانت جديدة فاختر أخرى قديمة

هلا وضعت لنا الشيفرة الخاصة بك كاملة؟

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#11

السلام عليكم ,

قمت بتجريب ما تحدثت عنه من إدراج نص كبير من JTextArea في قاعدة بيانات MySQL .. و لم أجد أي مشكلة على الاطلاق ..

حتى النص الكبير الذي ذكرته اعلاه تم ادراجه بدون مشاكل ..

هذا هو كود الجافا الذي استخدمته

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;

public class MainFrame extends JFrame implements ActionListener{

	static final long serialVersionUID = 1l;
	Connection con;
	JTextArea txtArea = new JTextArea();
	JButton btnAdd = new JButton("Add");

	public MainFrame() {
		javax.swing.SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				createAndShowGUI();
			}
		});
	}

	private void createAndShowGUI() {

		try{
			Class.forName("com.mysql.jdbc.Driver");			
			String uri = "jdbc:mysql://localhost/test";
			String user = "root";
			String pass = "";

			con = DriverManager.getConnection(uri, user, pass);

		} catch(ClassNotFoundException e){
			e.printStackTrace();
		} catch(SQLException e){
			e.printStackTrace();
		}

		SwingUtilities.updateComponentTreeUI(this);
		validate();

		JFrame frame = new JFrame(" ... ");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		Container pane = frame.getContentPane();
		pane.setLayout(new BorderLayout());

		JPanel rightPanel = initRightPanel();

		pane.add(rightPanel,BorderLayout.CENTER);

		frame.pack();

		frame.setVisible(true);

	}

	public JPanel initRightPanel(){
		JPanel bottomPanel = new JPanel(new BorderLayout());	

		JScrollPane sp = new JScrollPane(txtArea);
		sp.setPreferredSize(new Dimension(500,300));
		bottomPanel.add(sp,BorderLayout.CENTER);	
		btnAdd.addActionListener(this);
		bottomPanel.add(btnAdd,BorderLayout.PAGE_END);
		return bottomPanel;
	}

	public void actionPerformed(ActionEvent e){
		if(e.getSource()==btnAdd){
			String theme = txtArea.getText();
			try{
				Statement stmt = con.createStatement();

				stmt.execute("INSERT INTO theme(content) VALUES ('"+theme+"')");

				txtArea.setText("");	

				stmt.close();
			} catch(SQLException excep){
				excep.printStackTrace();
			}			
		}
	}		

	public static void main(String[] args){
		new MainFrame();
	}

}

و هذا هو كود SQL لانشاء قاعدة البيانات ..

CREATE TABLE theme (
  id int(11) NOT NULL auto_increment,
  content text NOT NULL,
  PRIMARY KEY  (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

حاول من المقارنة بين هذا الكود و كودك معرفة السبب في الخطأ الذي يظهر عندك ..

قد يكون لمحرك MySQL علاقة بالخطأ ..

جرب InnoDB

..

أبو خالد السوري

#12
alaadiaa كتب:
هل جربت أخرى؟

جرب مثلاً Access

بالذات MySQL

تسبب مشاكل كثيرة

هل جربت نسخة أخرى من MySQL ؟

إن كانت قديمة فحدثها وإن كانت جديدة فاختر أخرى قديمة

هلا وضعت لنا الشيفرة الخاصة بك كاملة؟

تحياتي

شاكر لك اخي 'alaadiaa'

وفي الحقيقة لم اجرب access في هذه العملية ... ولكن ما الفائدة من ان لديك نظام يحتوي على الاقل اكثر من مليون سجل وفي الاخير استخدم access

ليس من المجدي استخدامها في عمل الانظمة الكبيرة ... وفي الحقيقة عندما رايت حديثك حول قاعدة البيانات وان لديها مشاكل قمت بتغيرها الى نوع اخر وهو MySQL SERVER 5.0

ولكن لا اعلم هل هو حديث جدا ام لا ... والحمد لله بالفعل لم تحدث لي مشكلة ... ولكن ظهرت لي مشكلة اخرى ... وهي انها لا تقبل النصوص الطويلة والكبيرة

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

والشيفرة هي كالتالي :

String theme = request.getParameter("theme");
int row = update("insert into th (content) values ('"+theme+"')");
System.out.println(row);

وهنا استعملت وجهات HTML في العرض وفي عرض البرنامج لكي تريحني في علمية كتابة الشيفرة ...العملية هنا تقارب البرمجة بـ JSP

وهنا جعلت مربص النص في واجهت HTML وعندما اقوم بالنقر على Submit يرسل لي النص وقيمته الى هذه الشيفرة

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

try {
Class.forName("org.gjt.mm.mysql.Driver");
}
catch (Exception e){
System.out.print(e); 
}
private String UserName = "root";
private String Password = "123";
private String url = "jdbc:mysql://localhost:3306/vb";
private Connection connction = null;
private Statement statement = null;
private ResultSet resultset = null;
private int row = 0;

private int update (String Query){  //Insert Statement 


try{

connction = DriverManager.getConnection(url,UserName,Password);

statement = connction.createStatement();

row = statement.executeUpdate(Query);

}

catch (Exception e){

System.out.print(e); 



}

return row;

}

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

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

#13
أبو خالد السوري كتب:
و هذا هو كود SQL لانشاء قاعدة البيانات ..

نـور + نـور = نـورين ...!!





بسم الله الرحمن الرحيم







والحمد لله رب العالمين والصلاة والسلام على اشرف الأنبياء والمرسلين نبينا محمد عليه أفضل الصلاة وأتم التسليم ... اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وزدنا علما ... أما بعد ...





نور + نور = نورين ... قد يعتبر غريب هذا العنوان والأغرب هو أني أضع لأول مرة معادلة رياضية عنواناً لإحدى المواضيع ... و هذا الموضوع الذي وضعته كما قلت عبارة عن معادلة ... 
فهذه المعادلة الرياضية هي آخر ما توصلت إليه وآخر ما اكتشفته ... نور + نور = نورين ... معادلة أنا اعتبرها جميلة جدا وأجدر أن تكون عنوان لموضوع ... 
وهذه المعادلة اقتبستها من معادلة رياضية أخرى وهي 1 + 1 = 2 ... فالجزء الأول زائد الجزء الثاني يساوي الجزء الثالث ... ولهذا قلت أن نور + نور = نورين ... 
ولكن السؤال الذي يطرح نفسه ما المقصود بنور الأولى ونور الثانية ونورين ...







واعتقد أن هذا السؤال قد دار في مخيلتك وما معنى هذه المعادلة ....أو ما المقصود بها .. ولهذا لن أتحدث عنها كثيرا ... فالمهم على ما اعتقد هو الناتج وكيف أتى بالمعادلة هذه ...
وكيف وصل بي الاستنتاج إلى هذه المعادلة ... ببساطة أن كلمة نورين هي عبارة عن اسم –بكسر الراء وتشديد الياء - ... اسم لفتاه قريبة لي وهذه الفتاه ذات الست سنوات ... 
ولأكون واضحاً فهي تصبح بالنسبة لي ابنه ابن عمي ... وما سر اهتمامي بها إلى درجة أني أضع اسمها في معادلة رياضية ومن ثم عنواناً للموضوع أيضا إلا من اجل نور الأولى 
ونور الثانية التي في المعادلة ... وهذا هو القصد بنور الأولى ونور الثانية والناتج يساوي الفتاه ...







وفي الحقيقة قبل أن اكتب هذا الموضوع عن هذه الفتاه نورين قد أخبرت أباها بهذا الأمر واني أريد كتابة موضوع فيها ... وفي الحقيقة أيضا أبدى استغرابه الشديد لما قلت وهو أني أريد 
كتابة موضوع عن ابنته وبعض الأمور المتعلقة بها ... وفي الأخير سال لماذا ..؟







ففي إحدى الليالي الملاح وفي يوم من الأيام ذهبت إلى منزل عمي ... وهذا العم هو الأب لأبو نورين أو الجد للابنة نورين ... وهذا المنزل قريب من منزلنا ... وما إن دخلت المنزل وإلا 
وجدت أب هذه الفتاه جالساً في مكان نسيمه نحن "الملحق" ... فجلست معه وأخذنا نتبادل الحديث فيما بيننا ... وبينما نحن كذلك وإذا بابنته تأتي إلينا ومن ثم جلست ... وبد فترة خرجت الابنة 
وذهبت عند أمها ... ومن هنا بدا الحديث بيني وبين الأب حول الابنة ...







وفي أول حديثنا عن الابنة نورين سالت أباها سؤالاً سريعا ... هل نورين كثيرة الأسئلة ... بمعنى آخر هل نورين تطرح عليك الكثير من الأسئلة ... فقال لي وبسرعة "اوووووووووووف ياكثر أسئلتها"
... فأحسست أن ما قال نابع من معاناته مع ابنته بسبب الأسئلة ولم ولن استغرب هذا الأمر ... وبعد هذا السؤال سألته سؤالاً آخر وهو هل تجيب على كل سؤال تسأله ابنتك نورين ... 
فقال لي لا ... فقلت ما السبب ... فقال في بعض الأحيان تكون أسئلتها كثيرة جدا وأنا لا أتحمل هذا الأمر ... والأمر الآخر هو أني في بعض الأحيان أكون قادم من العمل وما أن ادخل 
وإلا تنهل علي بالأسئلة ...







من الطبيعي هذا الأمر وهو كثرة أسئلة الصغار ولا أتوقع أن أحدا يستغرب هذا الأمر أيضا ... ولكن إن أتينا إلى شيء من المفهومية كما أحب أن نسميها ... 
لماذا الصغار لديهم الكم الهائل من الأسئلة ... ولماذا لا يملون من طرحها على الأشخاص ... ببساطة أن جواب السؤالين يمكن في كلمة واحدة وهي "الحل" ... الحل لأي مشكلة
... واقصد بهذا أن الطفل عندما يكون صغيراً يعيش في مشكلة دائمة ... وهذه المشكلة هي عدم معرفته بالعالم المحيط به ... ولهذا يبحث عن حل لهذه المشكلة ...







فالطفل الصغير دائماً يحاول اكتشاف عالمة المحيط ... وهذا العالم هو ملل بدرجة كبيرة جدا بالنسبة للطفل بحكم جلوسه في البيت وتقيده به ... ولهذا فان الطفل يحاول أن يسلط الضوء 
على أمور غريبة بالنسبة له ويحاول اكتشافها ... وقد نبدي لها استغرباً أيضا ... وهذا الاستغراب يكون في نوعية الأسئلة المطروحة من قبل الطفل ... ومن هذه الأسئلة ... 
لماذا لون الشجر اخضر ... لماذا ولماذا ... فهذه أسئلة نعتبرها نحن ساذجة إن جاز لنا التعبير ولكن بالنسبة للطفل هي عبارة عن اكتشاف جديد يضيفه إلى الاكتشافات الأخرى التي 
قام بها عن طريق أسئلته ... ومن هنا يبدأ الطفل الصغير بحل مشكلته أو مشكلاته ...







ولكن مع مرور المراحل العمرية للطفل وحل مشكلة بعد مشكلة بكثرة الأسئلة لوجدنا أن هذا الفعل هو ما يقوم به أشخاص نطلق عليهم "العباقرة" ... فالعبقري أو الشخص العبقري 
دائما يرى إن هنالك مشاكل توجد في العالم المحيط به ... وان هذه المشاكل لابد من حلها ... فاليوم تجده يحل مشكلة وفي الغد يحل مشكلة أخرى ... فالعبقري نجد انه يعيش مرحلة 
الطفولة هذه بالأسئلة التي تقوده للحل ... فتجده يريد جواباً لكل شي ولكل سؤال يطرحه على نفسه ولهذا يصبح كالطفل ... ومثال ذلك هو العالم "نيوتن" عندما أراد الجواب لسؤاله هذا
... لماذا سقطت التفاحة على الأرض ... فهذا السؤال عندما ننظر إليه نجده ساذجاً ونجد من أنفسنا محرجين عند الإجابة عليه ... ولكن هذا السؤال عندما طرحه الطفل والعالم نيوتن 
على نفسه اكتشف به قانون الجاذبية الأرضية وهو (9.8) نيوتن ...







ومن هذا وذاك فان الطفل نيوتن عندما وقع في مشكلة وهي سقوط التفاحة ... اخذ يسال نفسه لماذا ... وليس هذا فحسب .... بل أخذه هذا السؤال على ما اجزم به إلى سؤال آخر ... 
كيف سقطت التفاحة ... ومن سؤال إلى سؤال ... ومن إجابة إلى إجابة ... ونهاية الأمر وجد حل المشكلة هذه والسبب الرئيسي في سقوط التفاحة وهي الجاذبية ... وهذا ما يفعله الطفل
عندما يقع في أي مشكلة ... يسال نفسه سؤالاً ومتى أن يحدث ذلك يدخل في سؤال آخر ... وان لم يسال نفسه يسال الأشخاص الذين هم حوله ... ولهذا فان الابنة نورين أو الأطفال 
عموماً والعالم نيوتن عباقرة من الدرجة الأولى بحكم طرح السؤال أو المشكلة ... ومن بعدها إيجاد حل المشكلة أو السؤال ...!!







... ولكن إن توسعنا في مفهوم العباقرة وما يفعلونه لإيجاد حلول المشاكل التي تحيط بهم ... لوجدناهم أن لديهم خيالاً واسعاً عند حل المشكلة ... ولهذا فان العبقري عندما يواجه
سؤالاً أو يقع في مشكلة يفتح فناء خيالة للاحتمالات والفرضيات التي قد تسهم في حل المشكلة ... وهذا يتجلى عندما سقطت التفاحة عند نيوتن واخذ خيالة في وضع الاحتمالات
وهذا يتجلى أيضا عند الابنة نورين عندما قامت بطرح الأسئلة الكثيرة على أبيها وبالأساس تعتبر هذه الأسئلة مجرد احتمالات ... ولهذا فان العباقرة عندما يحسون بان هنالك مشكلة 
حدثت تعتبر هذه الخطوة أول خطوة لتقديم الحلول الممكنة للمشكلة نفسها وبداية العبقرية نفسها ...







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





ولكن بالنسبة للبعض فانه عندما يواجه مشكلة معينه فانه يبحث عن الحل السريع لها وبعد فترة قد يجد في نفسه الملل من إيجاد هذا الحل ... وهذا لم يفعله العالم نيوتن عندما سقطت التفاحة
... فكان من الأجدر منه أكلها بدلاً عن البحث عن المشكلة في سقوطها ... وهذا الفعل لا يقصد به الوصول إلى العبقرية ...!!







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






الكاتب : ........................................

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

تم تعديل هذه المشاركة بواسطة Jsp في 30 مارس 2008 في 07:30

#14

قمت بتجريب هذا النص و لم تواجهني أي مشكلة على الإطلاق ..

ثم جربت إدراج نص ضخم جداً (أكثر من 300 ألف محرف) ..

فظهرت الرسالة التالية :

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data truncated for column 'content' at row 1

و بالرغم من ذلك تم إدراج جزء من النص .. و عندما بحثت عن حجم النص المدرج وجدته 37409 محرف ..

الأمر الذي يمكن تفسيره على أن حجم النص المسموح في MySQL لحقل من النمط Text هو 37409 محرف .. اما بقية النص فقد تم تجاهله ..

بمعنى أنه نظرياً إن كانت النصوص التي لديك لا تتجاوز هذا العدد من المحارف فليس هناك مشكلة مع MySQL ..

الآن قمت بتغيير نمط الحقل من Text إلى LongText و إعادة التجربة ..

النص ذو الـ 300 ألف محرف تم إدراجه بدون مشاكل ..

و عند إدراج نص ذو 600 ألف محرف ظهرت الرسالة التالية ..

com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1152616 > 1048576). 
You can change this value on the server by setting the max_allowed_packet' variable.
	at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:2537)
  ....

و لم يتم إدراج أي شيء في القاعدة ..

إذا المشكلة قد تكون في المتحول max_allowed_packet .. انظر الرابط التالي :

http://www.astahost.com/info.php/max_allow...ysql_t2725.html

تم تعديل هذه المشاركة بواسطة أبو خالد السوري في 30 مارس 2008 في 15:21

أبو خالد السوري

#15

يظهر لك أخي JSP

أن المشكلة في قاعدة بيانات MYSQL

طلبت منك أن تجرب قاعدة بيانات أخرى غيرها

لم أعني ACCESS بالذات لكنها الأكثر توفراً

ربما لو توجهت إلى قسم قواعد البيانات سيفيدوك أكثر منا

تحياتي

تم تعديل هذه المشاركة بواسطة alaadiaa في 30 مارس 2008 في 17:22

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#16
أبو خالد السوري كتب:
و لم يتم إدراج أي شيء في القاعدة ..

إذا المشكلة قد تكون في المتحول max_allowed_packet .. انظر الرابط التالي :

http://www.astahost.com/info.php/max_allow...ysql_t2725.html

شاكر لك اخي ابو خالد على هذه المساعدة والتوصل لمكان المشكلة

ولكن اعذرني فلست جيدا بما فيه الكفاية في اللغة الانجليزية من ناحية القراءة واستوعابها

ولكن من خلال قراءتي للصفحة السابقة فهمت ان المتغير يكون حجمه صغير ولهذا فلابد من زيادة سعته من قبل الخادم ومن قبل العميل

ولكن اين هو الخادم واين هو العميل بالنسبة لـ MYSQL ... ومع ذلك نفذت ما في هذه الصفحة وحاولت زيادة السعة ... طبعاً على حسب فهمي للصفحة

وفي كل مرة يأتيني بالخطا ...

784317-683.jpg

لا اعرف هل الطريقة هكذا صحيح ام لا ... حتى اني سالت احد المختصين في قواعد البيانات ليس MYSQL بل الاوراكل وقال لي اجعله من نوع Blob فهو يقبل الى 2 جيجا

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

ومن له حيلة فليحتال ... وللاسف احتلت ولكن دون جدوى ايضا ...

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

alaadiaa كتب:
يظهر لك أخي JSP

أن المشكلة في قاعدة بيانات MYSQL

طلبت منك أن تجرب قاعدة بيانات أخرى غيرها

لم أعني ACCESS بالذات لكنها الأكثر توفراً

ربما لو توجهت إلى قسم قواعد البيانات سيفيدوك أكثر منا

تحياتي

اخي 'alaadiaa'

حقيقة لم اعمل يوما على قاعدة البيانات access مثل ادخال بيانات وغيرها من انواع العمليات التي تجرى

فاصراري على قاعدة البيانات هذه وهو عدم نجاحي في انواع قواعد البيانات ...

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

والـ Sql server لم اعثر على driver الخاص بها ... فلقد بحثت وحاولت كثيرا في عملية الربط ولكن دون جدوى ... والسبب يظهر لي رسالة The Driver Not Found

والـ access انت تعلم والكل يعلم ما الفرق بينها وبين قواعد البيانات الاخرى ... ولهذا فلم اجد طريقا سوى MYSQL وهذه النسخة بالتحديد

784317-684.jpg

وللعلم فالمشكلة هذه طرحتها في قسم قواعد البيانات قبل ان اطرح هذا الموضوع بثلاثة ايام او اربعه لا اتذكر ... وكالعادة لم يجب احد على ما كنت ابحث عنه

وهو هنا

/index.php?showtopic=155709

ولم اجد طريقا الا لوضع المشكلة هنا لكي اعرف اين الخلل الحقيقي في عملية ادخال النصوص ... ولاكون صادقا انتظر الى شهر قادم وانا اضمن لك عدم الاجابة على سؤالي هناك ...

#17

هذا هو الـ jdbc الخاص بـ sql server 2007

أتمنى لك كل توفيق

sqljdbc_1.1.1501.101_enu.rar

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#18
alaadiaa كتب:
هذا هو الـ jdbc الخاص بـ sql server 2007

أتمنى لك كل توفيق

جزاك الله خير اخي : 'alaadiaa

ولكن حصل لي بعض الاخطاء لم اعرف ما السبب ... فهذه المرة أيضا قد اظهر لي نفس الرسالة السابقة التي تحدث عنها الخطا كالتالي :

com/microsoft/sqlserver/jdbc/SQLSERVERDRIVER
CALSS not found

هذا في الصفحة التي اقوم بادخال النص ... والخطا الثاني ياتيني في الجافا وهو كالتالي مع اني قمت بتجربتها على javaJSP

java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

ولكن هل هذا Driver يصلح في عملية الربط بهذه القاعدة : SQL Server Management Studio Express2005 او نوع اخر ...

وDriver لقد وضعته في هذا الملف مع اني وضعت Drivrer اخر في نفس المسار

C:\jdk1.6.0_02\lib

وكلاس الجافا هو كالتالي ... طبعا لم اجري عليه اي تعديل بسبب اريد التاكد هل تم التعرف عليه او لا

import java.sql.*;
import com.microsoft.sqlserver.jdbc.*;

public class connectDS {

public static void main(String[] args) {
// Declare the JDBC objects.
Connection con = null;
CallableStatement cstmt = null;
ResultSet rs = null;
try {
// Establish the connection. 
SQLServerDataSource ds = new SQLServerDataSource();
ds.setUser("UserName");
ds.setPassword("*****");
ds.setServerName("localhost");
ds.setPortNumber(1433); 
ds.setDatabaseName("AdventureWorks");
con = ds.getConnection();
// Execute a stored procedure that returns some data.
cstmt = con.prepareCall("{call dbo.uspGetEmployeeManagers(?)}");
cstmt.setInt(1, 50);
rs = cstmt.executeQuery();
// Iterate through the data in the result set and display it.
while (rs.next()) {
System.out.println("EMPLOYEE: " + rs.getString("LastName") + 
", " + rs.getString("FirstName"));
System.out.println("MANAGER: " + rs.getString("ManagerLastName") + 
", " + rs.getString("ManagerFirstName"));
System.out.println();
}
}
// Handle any errors that may have occurred.
catch (Exception e) {
e.printStackTrace();
}
finally {
if (rs != null) try { rs.close(); } catch(Exception e) {}
if (cstmt != null) try { cstmt.close(); } catch(Exception e) {}
if (con != null) try { con.close(); } catch(Exception e) {}
}
}
}

فأين المشكلة في هذا وما هي الطريقة الصحيحة في الربط اذا كانت هذه الطريقة خطا ...

لقد شاب شعر الرأس بسبب قواعد البيانات والجافا أيضا ... والمشكلة اذا تم انجاز قرابة 80% من النظام ولم يبقى الا اضافة النصوص الطويلة فقط ...!!

وهذا مما يزيد الشعر بياضاً ...

تم تعديل هذه المشاركة بواسطة Jsp في 1 أبريل 2008 في 03:12

#19

أظن أخي أن الملفات الجار الإضافية توضع في مجلد

C:\Program Files\Java\jre1.6.0\lib\ext

لدي بعض المشاغل حالياً سأعود وأرى شيفرتك

أعذرني على التأخير

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#20

أخي بامكانك ادراج ملف الجار ( JDBC Driver )

في مشروعك وسوف يختفي الايرور

اذا كنت تستخدم نت بينز

اذهب الى خصائص مشروعك Properties

File -> YourProject Properties ->libraries

add JAR files

اذا كنت تستخدم كوماند لاين ( يونكس او لينكس )

CLASSPATH=.:/Your Driver Path

export CLASSPATH

#21

جزاك الله خير اخي عيسى وجزاك الله خير اخي alaadiaa

الحمد لله لقد تم الربط بين قواعد البيانات SQL SERVER والبرنامج ... ولكن اظهر لي مشكلة في URL

المشكلة هي ان في كل عملية اتصال يرفض البرنامج هذا الاتصال ويخبرني بان الاتصال مرفوض

هذا الكود الذي انشاته ... حيث ان SERVER Name لقاعدة البيانات هو : MICROSOF-12D59C\SQLEXPRESS واسم المستخدم : MICROSOF-12D59C\xp اما كلمة المرور فلا يوجد :

import java.sql.*;



public class connectionSQLSERVER {



public static void main (String[] args) {



String UserName = "MICROSOF-12D59C";

String Password = "";

Connection connction = null;

Statement statement = null;

String url = "jdbc:mysql://localhost:3306/vb"; 



try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

} 

catch (Exception e){

System.out.println(e); 

}



try {

connction = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=test;",UserName,Password);

}

catch(Exception e){

System.out.println(e); 

}

}

وبعد عملية الاتصال في الاخير يرفضها ... وهذا هي الرسالة :

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host has failed. java.net.ConnectException: Connection refused: connect

ولكن ما شأن المكتبة java.net في عملية الاتصال وما شان TCP/IP كذلك ...!!

جزاكم الله خير

#22

أخي على حسب علمي معرفتي بـ sqlserver

ضروري أن لا تكون على windows authentication

تعاملي معها قديم قليلاً

لكني أتذكر بعض المشاكل التي واجهتني

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#23

الـ URL التي استخدمتها في كودك الأخير تخص MySQL

String URL = "jdbc:mysql://localhost:3306/vb";

أما بالنسبة لـ Microsoft SQL server فالـ URL يجب أن تكون بالشكل التالي :

jdbc:microsoft:sqlserver://<HOST>:<PORT>[;DatabaseName=<DB>]

انظر الرابط التالي :

http://www.devx.com/tips/Tip/28818

أبو خالد السوري

#24

اسف .. لم انتبه إلى كامل الكود

الآن انتبهت أن الـ URL الفعلية التي استخدمتها في الاتصال هي

jdbc:sqlserver://localhost:1433;databaseName=test;

لذا حاول مع

jdbc:microsoft:sqlserver://localhost:1433;databaseName=test;

أبو خالد السوري

#25

جزاكم الله خير اخي alaadiaa و ابو خالد

وفي الحقيقة اخي ابو خالد عندما اضيف ما تحدثت عنه تظهر لي مشكلة وهي عدم الربط اساساً

فالحمد لله قمت بالربط وذلك عن طريق الدخول الى مدير النظام وفتح معبر TCP/IP .. فلقد كان مقفل وغير مسموح الاتصال من خلاله

بقيت لي مشكلة بسيطة جدا وهي ان عملية تنصيب SQL SERVER خاطئة وكان ينقصها بعض التعديل ... فهو لا يعرف اسم المستخدم وكلمة المرور في البرنامج

ولقد بحثت عن طريقة في قسم قواعد البيانات وهي باني لا اكون على شاشة windows authentication لكي يحدث لي الاتصال الحقيقي كما قال اخي alaadiaa

وبنفس الوقت لا يعرف اسم المستخدم وكلمة المرور ويعطيني رسالة خطا وهي ان المستخدم وكلمة المرور خاطئتين ... فعندما تنحل مشكلة تظهر مشكلة اخرى ...

فالمشكلة كانت في MySQL والان ذهبت الى SQL SERVER وحطت رحالها ... ولكن ما بعد سوف يكون لا ادري

جزاكم الله الخير على هذه المشاركة في الموضوع وجزاكم الله خير على هذه المساعدة

تم تعديل هذه المشاركة بواسطة Jsp في 3 أبريل 2008 في 12:49

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