ورود

View Full Version : سوال: بدست آوردن تداخل کلاس در نرم افزار آموزشگاه



arkia
شنبه 01 خرداد 1389, 20:36 عصر
سلام . خسته نباشید.
یک نرم افزار آموزشگاه نوشتم که تو جدول کلاس هاش دو فیلد ساعت شروع و ساعت پایان داره . حالا من فرمولی میخوام که هنگام ثبت کلاس جدید اگر ساعت شروع کلاس و ساعت پایان کلاسی که کاربر وارد کرد در بانک بود پیغام تداخل بده.

(جستجو کردم چیزی پیدا نکردم)

حسین شهریاری
شنبه 01 خرداد 1389, 21:36 عصر
کافيه يه کوئري بزني! به شکل زير:
اون موقه اگه رکوردي برگردوند بايد پيغام تداخل بديد.

در اين کد فرض شده شما فيلد ساعت ها را از نوع کاراکتري گرفته ايد.ميتوني اين کد را قبل از متد post قرار بدي تا اگه تداخلي نبود اون موقه عمل ذخيره انجام بشه.


AdoQuery.sql.text:='select * from Kelas where start='+Qotedstr(AdoTable.fieldbyname('start').ass tring)+' and last='+Qotedstr(AdoTable.fieldbyname('last').asstr ing);
Adoquery.close;
Adoquery.open;
if Adoquery.RecordCount > 0 then
showmessage('Time Exists!!');

موفق باشيد

Pr0grammer
شنبه 01 خرداد 1389, 21:46 عصر
در اين کد فرض شده شما فيلد ساعت ها را از نوع کاراکتري گرفته ايد.ميتوني اين کد را قبل از متد post قرار بدي تا اگه تداخلي نبود اون موقه عمل ذخيره انجام بشه.


این کد در صورتی که ساعت شروع وارد شده، بین ساعت شروع و پایان ثبت شده در بانک باشه، نمی تونه درست عمل کنه!


قبلاً توی یه برنامه استفاده کرده بودم، اما هرچه گشتم پیدا نشد که واست بنویسم ...
به هر حال، فکر کنم این جواب بده :

- باید اول کلاس مربوطه رو با فیلتر انتخاب کنی (مثلا قبلا دو تا کلاس در ساعت مختلف درون کلاس باید تشکیل بشه و اطلاعاتش از قبل ثبت شده... پس اول باید این دو تا رو پیدا کنی!)
- بعد ابتدا ساعت وارد شده و ساعت های ثبت شده در بانک، یکی یکی بررسی کنی..
در حین بررسی:
- اگر ساعت شروع وارد شده، کوچیک تر از ساعت شروع ثبت شده بود؛ باید ساعت پایان وارد شده رو با ساعت شروع ثبت شده در بانک بررسی کنی (اگه از ساعت شروع ثبت شده بزرگتر بود، کلاس ها تداخل داره!)
- اگر ساعت شروع وارد شده، بزرگتر از ساعت شروع ثبت شده بود، باز هم باید ساعت پایان ثبت شده در بانک بررسی کنی (اگه از ساعت پایان ثبت شده کوچیکتر بود، کلاس ها تداخل داره!)
- این کار رو انقدر باید تکرار کنی تا به رکرود آخر برسی...

امیدوارم بتونم منظور رو رسونده باشم!

حسین شهریاری
شنبه 01 خرداد 1389, 21:58 عصر
این کد در صورتی که ساعت شروع وارد شده، بین ساعت شروع و پایان ثبت شده در بانک باشه، نمی تونه درست عمل کنه!


منظور ايشون محدوده بين دو ساعت شروع و پايان نيست بلکه هر کلاسي که تعريف ميشه يه زمان شروع و پايان ثابت براش تعريف ميکنن(ايشون).وحالا ميخان اگه کلاسي قراره ثبت بشه ساعت شروع و پايانش تکراري نباشه يا به قول خودشون تداخل نداشته باشه.

فرمايش شما هم صحيح هست ولي نه براي برنامه ايشون بلکه وقتي قرار باشه محدوده ساعت چک بشه.

arkia
پنج شنبه 06 خرداد 1389, 10:38 صبح
دوستان ممنون از پاسختون . روش کوئری رو امتحان کردم جواب کار منو جواب نمیده.

mehdimdp
جمعه 07 خرداد 1389, 00:36 صبح
خب احتمالا نوع فیلدتون از نوع رشته ای نیست. وگرنه کوئری فوق باید جواب بدهد