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

نسخة كاملة : كيف أقوم بإدخال معلومات في جدول من نوع N,N
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
(17-07-2020, 02:24 AM)ALG2009 كتب : [ -> ]
(16-07-2020, 06:03 PM)larbiparadox كتب : [ -> ]لو كان للتلميذ درس واحد نستطيع حفظ مرة واحدة وانتهى الامر ، في قفل واحد نضع حفظ التلميذ و بعدها حفظ الدرس ، لكن للتلميذ مجموعة من الدروس

سهرت مع هذا الفيديو لأحوله إلى الفيربيرد فلم أستطع أظنه يفي بالغرض أليس كذلك

الفيديو

تم تحويل الكود وفق قاعدة البيانات السابقة

كود Procedure أنا سميتها N_N
PHP كود :
--Procedure: N_N

--DROP PROCEDURE N_N;

SET TERM ^ ;

CREATE OR ALTER PROCEDURE N_N (
  STUDENTNAME VARCHAR(50) CHARACTER SET UTF8,
  COURSENAME  VARCHAR(50) CHARACTER SET UTF8
)
AS
declare 
variable COURSEID integer;
declare 
variable STUDENTID integer;

BEGIN
 
/* Procedure code */
:STUDENTID = (Select ID_STUDENT from STUDENT where NAME = :STUDENTNAME); 

if (:
StudentId is null) then
Begin
  Insert into STUDENT 
(NAME) values (:STUDENTNAME);
  :StudentId = (SELECT GEN_ID( GEN_STUDENT_ID, 0 ) FROM RDB$DATABASE);
End

:CourseId = (Select ID_LESS from LESSONS where LESSNAME = :COURSENAME);
if (:
CourseId is null) then
Begin
  Insert into LESSONS 
(LESSNAME) values (:COURSENAME);
  :CourseId =  (SELECT GEN_ID( GEN_LESSONS_ID, 0 ) FROM RDB$DATABASE);
End

Insert into STUDLESSON 
(ID_LESS,ID_STUDENT) values (:CourseId, :StudentId);

 
END^

SET TERM ; ^ 

للإستدعاء الدالة
PHP كود :
execute procedure N_N ('aa','nnn') 
ماذا لو كان هناك أكثر من تلميذ بنفس الاسم؟
(21-07-2020, 06:47 PM)sofiane201 كتب : [ -> ]ماذا لو كان هناك أكثر من تلميذ بنفس الاسم؟

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

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

(21-07-2020, 06:47 PM)sofiane201 كتب : [ -> ]ماذا لو كان هناك أكثر من تلميذ بنفس الاسم؟

ولكن الإجراء( Procedure ) لا يسمح بإدخال نفس إسم التلميذ 

يدخل لكل تلميذ عدة دروس أو لكل درس عدة تلاميذ ليسو  بنفس الإسم فجملة  if (:StudentId is null) then تتحقق من الإسم إذا كان موجود فلا تدخله مرة أخرى أليس كذلك؟
(22-07-2020, 01:38 AM)ALG2009 كتب : [ -> ]جزاكم الله خيرا وأدخلكم الجنة إستفدت كثير من خلال مساعدتكم وما زلت أتعلم بارك الله فيكم

(21-07-2020, 06:47 PM)sofiane201 كتب : [ -> ]ماذا لو كان هناك أكثر من تلميذ بنفس الاسم؟

ولكن الإجراء( Procedure ) لا يسمح بإدخال نفس إسم التلميذ 

يدخل لكل تلميذ عدة دروس أو لكل درس عدة تلاميذ ليسو  بنفس الإسم فجملة  if (:StudentId is null) then تتحقق من الإسم إذا كان موجود فلا تدخله مرة أخرى أليس كذلك؟

ليس المشكل في عدم تكرار الاسم ، ما يقصده الاخ sofiane201 في حالة وجود تلميذين لهما نفس اللقب و نفس الاسم ويختلفان في تاريخ الازدياد ، في هذه الحالة يقبل تلميذ و واحد فقط فالثاني لا ، ومن هنا وضع الاحتياطات لمثل هذه الامور
(21-07-2020, 01:13 PM)larbiparadox كتب : [ -> ]ليس المشكل في عدم تكرار الاسم ، ما يقصده الاخ sofiane201 في حالة وجود تلميذين لهما نفس اللقب و نفس الاسم ويختلفان في تاريخ الازدياد ، في هذه الحالة يقبل تلميذ و واحد فقط فالثاني لا ، ومن هنا وضع الاحتياطات لمثل هذه الامور

بالفعل لو أردت أن أضيف تلميذ بنفس الإسم سأقع في مشكل عدم الإضافة وهنا سأضطر إلى أن أضيف رقم خاص للتلميذ كما ذكررت لي سابقا وهنا إما أن يكون الرقم الوطني أو أن أقوم بعملية حسابية لذلك كأن أأخذ الحرف الأول من الإسم والحرف الأول من اللقب وأضيف إليهم تاريخ الميلاد بدون / لتكوين رقم التلميذ هذا كإقتراح من عندي
الصفحات : 1 2 3