04-08-2020, 09:33 PM
السلام عليكم
كيف أقوم بإدخال المعلومات بإستعلام واحد دون اللجوء إلى الإجراءات المخزنه داخل قاعدة البيانات؟
جربت هذا الكود لم يعمل مع العلم أني أضفت ExecSQL ولكن يعطيني خطأ لو أضفتها ما المشكلة
وكذلك عندما أريد إختصار الكود بإضافة with Dmdata.qryadd Do يعطيني خطأ في سطر البارميتر ؟
أريد أن أكتب الكود كمحترف هل هذه الطريقة صحيحة أعرف أنه يمكن كتابة الكود بأكثر من طريقة هل هذه الطريقة جيدة ؟
كيف أقوم بإدخال المعلومات بإستعلام واحد دون اللجوء إلى الإجراءات المخزنه داخل قاعدة البيانات؟
جربت هذا الكود لم يعمل مع العلم أني أضفت ExecSQL ولكن يعطيني خطأ لو أضفتها ما المشكلة
كود :
procedure TfrmAdd.btnAddClick(Sender: TObject);
var studentId,STUDENTNumber : integer;
lessonName :string;
begin
STUDENTNumber := ('Select STUDENTNumber from student where STUDENTNumber = StrToInt(:edit1.text)');
if ((STUDENTNumber =null )then
Begin
Dmdata.qryadd.SQL.Text:='INSERT INTO Student (FName,LName,BDay,PBirth)'+
'VALUES (:fname,:LName,:Bday,:PBirth)' ;
Dmdata.qryadd.Params.ParamByName('FNAME').AsString:= edtFName.Text;
Dmdata.qryadd.Params.ParamByName('LNAME').AsString:= edtLName.Text;
Dmdata.qryadd.params.ParamByName('BDay').AsDate:= StrToDate(edtBDay.Text);
Dmdata.qryadd.Params.ParamByName('PBirth').AsString:= edtPBirth.Text;
studentId := (SELECT GEN_ID( GEN_studentID, 0 ) FROM RDB$DATABASE);
End ;
lessonName := ('Select lessonName from lessons where lessonName = :combox.text');
if ((lessonName =null )then
Begin
Dmdata.qryadd.SQL.Text:='Insert into lessons (lessonName) values (:lessonName)';
Dmdata.qryadd.Params.ParamByName('lessonName').AsString:= ComboBox1.Text;
LessonId := (SELECT GEN_ID( GEN_LESSONSID, 0 ) FROM RDB$DATABASE);
end;
Dmdata.qryadd.SQL.Text:='Insert into Studlessons (studentId,lessonId) values (:studentId,:lessonId)';
end;
وكذلك عندما أريد إختصار الكود بإضافة with Dmdata.qryadd Do يعطيني خطأ في سطر البارميتر ؟
أريد أن أكتب الكود كمحترف هل هذه الطريقة صحيحة أعرف أنه يمكن كتابة الكود بأكثر من طريقة هل هذه الطريقة جيدة ؟