ورود

نسخه کامل مشاهده نسخه کامل : مشكل كد تكراري



hamidehsadat
06-03-2007, 18:45
من 4 تا جدول دارم كه اسم جدول هايم student,master,course,class است جدول دانشجو به جدول كلاس وصل ميشود از طريق كد دانشجو. جدول استاد به جدول كلاس وصل ميشوند از طريق كد استاد.جدول درسها به جدول كلاس وصل ميشوند از طريق كد درس.
حالا من يك فرم ثبت نام دارم كه بر روي فرم اطلاعات دانشجو و درسي كه دانشجو انتخاب كرده است قرار داد. فيلد كددانشجو فعال است كاربر كه داده اي وارد ميكند اگر كد دانشجو تكراري نباشد فيلدهاي ديگر راهم فعال ميكند . اگر تكراري باشد اطلاعات مربوط به كددانشجويي كه وارد شده است مي ايدولي اطلاعات درسي كه انتخاب كرده است نميايد چه كار كنم؟
سوال من اينه كه كد دانشجوكه در جدول دانشجو كليد اصلي است و در جدول كلاس كليد خارجي است نبايد در هر دو ذخيره بشود؟
روي فرم dbedit است وبانك پارادوكس است

ممنون

مرد مباح
06-03-2007, 20:06
متاسفانه جناب سعادت، توضيحات شما در بعضي نقاط گنگ بود و من دقيقا سوال شما را متوجه نشدم.
لطفا دقيق بگوئيد كه چه چيزي ميخواهيد و اگر در توانم بود در خدمتم.

hamidehsadat
06-03-2007, 22:36
متاسفانه جناب سعادت، توضيحات شما در بعضي نقاط گنگ بود و من دقيقا سوال شما را متوجه نشدم.
لطفا دقيق بگوئيد كه چه چيزي ميخواهيد و اگر در توانم بود در خدمتم.

ببخشد بگيد كجا ها گنگ است تا من بيشتر توضيح بدهم.
ممنون

مرد مباح
07-03-2007, 15:29
در يك بخشي گفتين كه اطلاعات درسي نمي آيد ولي اطلاعات دانشجو ميآيد.
از چه فرماني براي آمدن اطلاعات درسي استفاده كرديد و از چه كامپوننتي استفاده ميكنيد ؟؟ DBGride يا چي؟

delphianddotnet
07-03-2007, 19:13
ميكند اگر كد دانشجو تكراري نباشد فيلدهاي ديگر راهم فعال ميكند . اگر تكراري باشد اطلاعات مربوط به كددانشجويي كه وارد شده است مي ايدولي اطلاعات درسي كه انتخاب كرده است نميايد چه كار كنم؟

سلام
فکر کنم مشکل شما با JOIN کردن جداول حل بشه!بیشتر توضیح بده تا راهنمایی بیشتری بشی؟

وبانك پارادوكس است
:sad: :sad:

hamidehsadat
08-03-2007, 09:54
در يك بخشي گفتين كه اطلاعات درسي نمي آيد ولي اطلاعات دانشجو ميآيد.
از چه فرماني براي آمدن اطلاعات درسي استفاده كرديد و از چه كامپوننتي استفاده ميكنيد ؟؟ DBGride يا چي؟

يك فرم ثبت نام دارم كه بر روي فرم اطلاعات دانشجو و درسي كه دانشجو انتخاب كرده است قراردارد .ابتدا كه فرم باز مي شود فيلد كد دانشجو فعال استو فيلدهاي ديگر غير فعال است كهربر كه دانشجو را وارد مي كند و سپس دكمه جديد را مي زند و اگر كدي كه وارد كرده است تكراري نباشد فيلدهاي ديگر را فعال مي كند و كاربر اطلاعات ديگر را وارد مي كند و بعد دكمه ثبت را مي زند .
و اگر كد تكراري باشد اطلاعات مربوط به اين كد كه قبلا ذخيره شده است مي ايد ولي اطلاعات درسي كه بر روي همين فرم قرار دارد نمي ايد

كد button جديد
if (table1.Locate('st-id',dbedit1.Text,[]))=false then begin
dbEDIT1.Enabled:=TRUE;
dbedit2.Enabled:=true;
dbedit3.Enabled:=true;
dbedit4.enabled:=true;
dbedit5.Enabled:=true;
dbedit6.Enabled:=true;
dbedit7.Enabled:=true;
dbedit8.Enabled:=true;
dbedit9.Enabled:=true;
dbedit10.Enabled:=true;
dbedit11.Enabled:=true;
dbedit12.Enabled:=true;
dbedit13.Enabled:=true;
dbedit14.Enabled:=true;
edit.Enabled:=true;
dbcombobox1.Enabled:=true;
save.Enabled:=true;
end
else begin
messagedlg('please enter a correct code',mtinformation,[mbok],0);
dbedit3.Enabled:=false;
dbedit4.enabled:=false;
dbedit5.Enabled:=false;
dbedit6.Enabled:=false;
dbedit7.Enabled:=false;
dbedit8.Enabled:=false;
dbedit9.Enabled:=false;
dbedit10.Enabled:=false;
dbedit11.Enabled:=false;
dbcombobox1.Enabled:=false;
dbedit12.Enabled:=false;
dbedit13.Enabled:=false;
dbedit14.Enabled:=false;
dbedit2.Enabled:=false;
edit.Enabled:=true;
end;
end;

كد save
procedure TFORM2.saveClick(Sender: TObject);
begin
ret:=messagedlg('areu sure save this record',mtinformation,mbyesnocancel,0);
if (ret=idyes) then begin
table1.Insert;
messagedlg('record save',mtinformation,[mbok],0);
dbedit3.Text:=' ';
dbedit4.Text:=' ';
dbedit5.Text:=' ';
dbedit6.Text:=' ';
dbedit7.Text:=' ';
dbedit8.Text:=' ';
dbedit9.Text:=' ';
dbedit10.Text:=' ';
dbedit11.Text:=' ';
dbedit2.Text:=' ';
dbedit12.Text:=' ';
dbedit13.Text:=' ';
dbedit14.Text:=' ';
dbedit1.Text:=' ';
dbedit1.Enabled:=true;
form2.ActiveControl:=dbedit1;
dbedit3.Enabled:=false;
dbedit4.enabled:=false;
dbedit5.Enabled:=false;
dbedit6.Enabled:=false;
dbedit7.Enabled:=false;
dbedit8.Enabled:=false;
dbedit9.Enabled:=false;
dbedit10.Enabled:=false;
dbedit11.Enabled:=false;
dbedit12.Enabled:=false;
dbedit13.Enabled:=false;
dbedit14.Enabled:=false;
save.Enabled:=false;
dbedit2.Enabled:=false
end
else
dbedit1.Text:='';
dbedit3.Text:=' ';
dbedit4.Text:=' ';
dbedit5.Text:=' ';
dbedit6.Text:=' ';
dbedit7.Text:=' ';
dbedit8.Text:=' ';
dbedit9.Text:=' ';
dbedit10.Text:=' ';
dbedit11.Text:=' ';
dbedit1.Text:=' ';
dbedit12.Text:=' ';
dbedit13.Text:=' ';
dbedit14.Text:=' ';
dbedit2.Text:=' ';
form2.ActiveControl:=dbedit1;
dbedit1.enabled:=true;
dbedit3.Enabled:=false;
dbedit4.enabled:=false;
dbedit5.Enabled:=false;
dbedit6.Enabled:=false;
dbedit7.Enabled:=false;
dbedit8.Enabled:=false;
dbedit9.Enabled:=false;
dbedit10.Enabled:=false;
dbedit11.Enabled:=false;
dbedit12.Enabled:=false;
dbedit13.Enabled:=false;
dbedit14.Enabled:=false;
dbedit2.Enabled:=false;
save.Enabled:=false;
end;

delphianddotnet
08-03-2007, 10:54
سلام
اول از همه بگم که کدهاتونو تو تگ کد بزارین لطفا".

if (table1.Locate('st-id',dbedit1.Text,[]))=false then begin
بجای استفاده از Dbedit از Edit معمولی استفاده کن .چون باید یه متغیر از نوع واریانت باشه.

كد save
procedure TFORM2.saveClick(Sender: TObject);
begin
ret:=messagedlg('areu sure save this record',mtinformation,mbyesnocancel,0);
if (ret=idyes) then begin
table1.Insert;
messagedlg('record save',mtinformation,[mbok],0
اصلا" بانک برنامه ات رو ذخیره نکردی!
از این کد واسه ذخیره استفاده کن table1.post

delphianddotnet
08-03-2007, 10:57
بجای این همه شلوغ کردن تاپیک میتونستی کدهای اصلیتو بزاری . اینطور که متوجه شدم از بانک پارادوکس استفاده میکنی پیشنهادم اینه که به سمت Sql یا Access بری چون وسطهای راه گیر میکنی .
جناب مرد مباح یه سری اموزشهای بتنک اطلاعاتی رو در همین سایت قرار دادن اگه کمی مطالعه شون کنی بد نیست .
اگه مشکلی داشتی بگو.

hamidehsadat
08-03-2007, 12:25
سلام
اول از همه بگم که کدهاتونو تو تگ کد بزارین لطفا".

بجای استفاده از Dbedit از Edit معمولی استفاده کن .چون باید یه متغیر از نوع واریانت باشه.

اصلا" بانک برنامه ات رو ذخیره نکردی!
از این کد واسه ذخیره استفاده کن table1.post


منظورتون از اينكه تو تگ كد بزارين متوجه نشدم.
با table1.insert بانك برنامه ام را ذخيره مي كندو اگر table1.post را بگذارم erro key violation ر ا مي دهد

delphianddotnet
08-03-2007, 12:35
منظورتون از اينكه تو تگ كد بزارين متوجه نشدم.

[*c*o*d*e]
[/*c*o*d*e]
البته ستاره ها رو وردار !!!!

delphianddotnet
08-03-2007, 12:36
سورس برنامه ات رو بزار تا واست درستش کنم .

mahdi bg
12-03-2007, 07:16
سلام

مشخصات جداولت رو بذارر تا بتونیم بهتر کمکت کنیم
بهتر با Access کار کنی اگه وقتشو داری
البته هیچ فرقی از نظر ارتباط Table و نوع درج و حذف
رکورد بین این دوتا بانک وجود نداره

یه نکته دیگه اگه کلید اصلی توی جدولت داری بهتر که
به صورت AutoNumber تعریف کنی.اسم Edit ها رو هم
منطقی و مرتبط با جدول انتخاب کن آیا کلید اصلی رو هم به جدول پاس
می دین؟

hamidehsadat
13-03-2007, 21:26
مشكل برنامه ام رافهميدم .
ممنون از همه دوستان.