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

مشكل في برنامج كلينت - سرفر

بدأه saiddsa3980 في 12 أبريل 2009 · 11 رد · 1,460 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

السلام عليكــم ورحمـة الله وبركاتــه ،،

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

وفي الأخير أرجو من لديه الحل المساعدة في هذه المشكلة وأجر الجميع على الله

قال الحسن البصري : يا إبن آدم إنما أنت أيام إذا ذهب يومك ذهب بعضك

#2

السلام عليكــم ورحمـة الله وبركاتــه ،،

برجاء التوضيح أكثر للسؤال بعد ذلك

مرفق مثال سوف يساعدك

للتحميل : هنا

Comming Soon

#3

وعليكــم السـلام ورحمة الله وبركاتـه أخي swift

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

جزاك الله كل الخير والرحمة شكراً لك اخي الكريم .

Add_Record.rar

قال الحسن البصري : يا إبن آدم إنما أنت أيام إذا ذهب يومك ذهب بعضك

#4

السلام عليكــم ورحمـة الله وبركاتــه ،،

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

  1. var
  2. Group:string;
  3. begin
  4. Group:='';
  5. GroupsTable.First;
  6. for i:=1 to GroupsTable.RecordCount do
  7. begin
  8. Group:=Group+ GroupsTable.FieldByName('Name').AsString;
  9. GroupsTable.Next;
  10. end;
  11.  

الكود السابق تقوم بوضعة داخل السيرفر لعمل حلقة تكرار على الجدول ومن ثم تقوم بإرسال البيانات

SendText('<Groups>'+Group);

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

مثلاً هنقول

  1. if Command('<Groups>',buf)=1 then
  2. begin
  3. ..
  4. end;
  5.  

نصيحة لك : أول حاجة تعملها قبل كل شئ قم بتعلم تفصيل الأوامر عن طريق الأطلاع على اى سيرفر وكلينت لبرنامج دردشة مثلاًَ

واى مساعدة نحن فى الخدمة

Comming Soon

#5

شكراً لك اخي swift سأحاول عن طريق الكود السابق ثم أعطيك النتيجة

وشكراً على النصيحة وربي يأجرك

قال الحسن البصري : يا إبن آدم إنما أنت أيام إذا ذهب يومك ذهب بعضك

#6

السلام عليكــم ورحمـة الله وبركاتــه ،،

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

ياريت أخي تحاول تطبقة على المثال السابق وشكراً لك اخي الكريم

تم تعديل هذه المشاركة بواسطة saiddsa3980 في 15 أبريل 2009 في 21:59

قال الحسن البصري : يا إبن آدم إنما أنت أيام إذا ذهب يومك ذهب بعضك

#7

أين أنت أخي swift أنا مستني الإجابة ... ؟

قال الحسن البصري : يا إبن آدم إنما أنت أيام إذا ذهب يومك ذهب بعضك

#8
ربما يفيدك أكتر

Comming Soon

#9

شكراً لك اخي الكريم swift تمنيت أن يفيدني المثال السابق " برنامج شات " ولكني لم أستفد منه لأنني أريد أن تكون المعطيات المسجلة في dbgrid بالتطبيق سرفر موجودة في dbgrid بالتطبيق كلينت أي نفس التسجيلات التي يطلع عليها كلينت موجدة في قاعدة المعطيات بالسرفر

وأرجو أن يكون طلبي واضح الله يجزاك خير .

قال الحسن البصري : يا إبن آدم إنما أنت أيام إذا ذهب يومك ذهب بعضك

#10

أنا فاهم طلبك اخى الكريم

بس انت لازم تدرس ارسال الأوامر اولاً قبل كل شئ ما بين الكلينت والسيرفر

مثال واقعى : -

1. قم بتحميل المرفق التالى : - Simple_mul164134952003.zip

تفحص الأمرين التاليين :-

فى الكلينت سوف تجد هذا السطر

  1.  
  2. client.Socket.SendText('!text'+Edit2.Text+': '+text);
  3.  

ما فائدة هذا السطر ؟ تقوم بأرسال الأمر text! للسيرفر متبوعاً بالبيانات المطلوبة اللى انت تريدها بالسيرفر

فى مثالك مثلاً قم بارسال الأمر فقط بدون توابع نصية

فى الجهة الأخرى من السيرفر سوف تجد هذا الأمر فى الحدث ClientRead

  1.  
  2. if command = '!text' then
  3. begin
  4. memo1.Lines.Add(copy(strcommand,6,length(strcommand)));
  5. for g := 0 to Pred(Server.Socket.ActiveConnections) do
  6. server.Socket.Connections[g].SendText('!text'+copy(strcommand,6,length(strcommand)));
  7.  

سوف تلاحظ ان السيرفر عندما نقوم بارسال له ذلك الأمر سوف يقوم بعمل لصق للتابع الموجود بعد الأمر وهو

memo1.Lines.Add(copy(strcommand,6,length(strcommand)));

وذلك بعد مسح أول 6 رموز موجودين !text' وتشفية التابع فقط النصى

بعد ذلك تلاحظ فى السيرفر انة قام بارسال رسالة الى الكلينت رداً على الأمر المرسل من الكلينت وفى طلبك عن DBGrid تقوم بعمل حلقة تكرار كما ذكرت لك من قبل لأرسال كل سجل على حدة حتى نصل الى نهاية DbGrid وبالكلينت نقوم باستلام كل سجل وعمل اضافة لة ب DbGrid الموجودة بالكلينت على سبيل المثال

..Append;
...........
..Post;

فقط

بالتوفيق بإذن الله

ولا تتردد بالسؤال اخى الكريم .. اعزرنى ليس لدى وقت لعمل مثال كامل لأنها تحتاج الى وقت غير قصير

إذا توفر لدى الوقت سأقوم بعمل شرح كامل مع امثلة شاملة للمنتدى بإذن الله

Comming Soon

#11

بارك الله فيك أخي الكريم وآسف على تعبك ولكني حتى لآن لم أتحصل على المطلوب .

معذرة مرة أخرى والسلام عليكم .

قال الحسن البصري : يا إبن آدم إنما أنت أيام إذا ذهب يومك ذهب بعضك

#12

وين الدلفاويين ... وكأنه لايوجد أحد ؟

قال الحسن البصري : يا إبن آدم إنما أنت أيام إذا ذهب يومك ذهب بعضك

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