PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : شماره سریال برای بلیط



admin
16 / February / 1970, 11:36 AM
سلام.عملیاتی همچون دریافت بلیط ، نیاز*به*اجرای یک تراکنش دارد.
در یک تراکنش شما ابتدا
1.*در جدول اصلی چک می کنید که**به تعداد درخواستی سهمیه موجود*هست ( در واقع بایستی در صورت وجود یک عدد از موجودی آن سهمیه کسر گردد )
2. در مرحله ی دوم بایستی پس از دریافت مشخصات حساب مشتری چک شود که حساب نامبرده به اندازه ی کافی موجودی دارد ( در واقع باید مبلغ مذکور کسر گردد )
3.در این مرحله بایستی مبلغ کسر شده به حساب شرکت مذکور واریز گردد.
4.حال اگر تمام مراحل قبلی بدرستی انجام شود ، تعداد رکوردهای جدول اصلی شمارش گردیده و با آیتم دیگری همچون ساعت یا تاریخ ترکیب شود و شماره سریال بلیط تهیه گردد.
درصورتی که تمام مراحل بالا بدرستی صورت پذیرد تراکنش پایان یافته و در واقع Transaction* ما Commit می شود* و در غیر اینصورت Rollback صورت خواهد پذیرفت و تمامی مراحل کنسل می شود.دلیل هم این است که ما عمل Commit را انجام نداده بودیم.

بنابراین من هم نیازی به جدول Temp نمی بینم...

admin
16 / February / 1970, 11:36 AM
اینم یک نمونه کد برای تراکنش :

کد:


var Level: integer;
begin
Level:=ADOConnection1.BeginTrans;
try
//do some database
//updating, deleting or inserting
ADOConnection1.CommitTrans;
except
on E:Exception do ADOConnection1.RollbackTrans;
end;//try
end;

javad_rajabloo
19 / February / 2013, 11:58 PM
سلام دوستان


من یه برنامه می خوام بنویسم که با اون صدور بلیط رو انجام داد.

سه *تا جدول دارم

اولیش اطلاعات پایه مربوط به بلیط هست که شرح بلیط و قیمت داره

دومیش جدول تمپ هست که شامل فیلدهای شرح بلیط ، شماره سریال ، قیمت و تاریخ هست.


سومین جدول ، جدول اصلی مثل جدول تمپ هست که اطلاعات پس از ذخیره کامل و صدور بلیط ، از جدول دوم منتقل میشه به این جدول


نحوه تولید شماره سریال *، افزایش یک واحد آخرین شماره سریال جدول اصلی هست

وقتی که در جدول تمپ ، سه تا رکورد ذخیره کردم ، وقتی بخوام رکورد یک رو
حذف کنم و یکی دیگه جایگزین کنم در اینجا یک شماره سریال تولید شده که
معتبر نیست ( یعنی بلیطی با اون شماره سریال وجود نداره)

بهترین راهکار چیه؟

ممنونم

meyti
20 / February / 2013, 12:21 AM
با سلام
به نظر من شماره سریال تو جدول تمپ وجود نداشته باشه بهتره و وقتی اطلاعات قرار شد به جدول اصلی منتقل بشه شماره سریال تخصیص داده بشه .
اگه قرار باشه شما تو جدول تمپ کنترل روی شماره سریال داشته باشی دیگه به جدول تمپ نیازی نداری - و تو همون جدول اصلی شماره های سریال رو مرتب بکنی بهتره که این کار خیلی سخته .

javad_rajabloo
20 / February / 2013, 12:30 AM
ممنون از پاسختون

اما

فرمایش شما درسته زمانی که ما فقط یک رکورد به جدول تمپ اضافه کنیم اما وقتی
در جدول تمپ چند تا آیتم که افزوده شد ، برنامه اون ها رو جمع میزنه و در یک لیبل بصورت درشت مقدار پرداختی توسط مشتری* رو نشون میده

مورد بعدی اینه که ما وقتی قراره مقادیر تمپ رو چاپ کنیم ، نیاز داریم که شماره سریال بر روی بلیط درج بشه
پس اگه شماره سریال بر روی جدول اصلی پردازش بشه ، شماره سریال بر روی بلیط نمی تونیم چاپ کنیم.

meyti
20 / February / 2013, 12:41 AM
چرا نشه شما رکورد اضافه کنید و دست آخر شماره سریال بدید . ( یا تو همون جدول تمپ یا موقع جابه جا کردن )

شما میتونید بعد از ثبت در جدول اصلی با استفاده از کوئری ها چاپ بگیرید .

درسته که چاپ کردن از همون جدول تمپ خیلی راحته - ولی شما بالاخره به این احتیاج پیدا میکنید که مثلا یک فاکتور را دوباره چاپ کنید که باید توسط کوئری و جستجو در جدول اصلی انجام بشه ! درسته ؟ پس کلا چاپ رو از جدول اصلی بگیرید خیلی بهتر میشه .

javad_rajabloo
20 / February / 2013, 12:51 AM
ممنون از ایده تون
شماره سریال موقعی تخصیص بگیره که کاربر مطمئنه برای چاپ*<span style="font-family: trebuchet ms"><font size="3"><font color="Indigo"><b><font color="red">[فقط اعضاء انجمن قادر به مشاهده لینکها و عکسها می باشند <a href="/reg_iran.php" target="_blank">برای عضویت در سایت کلیک کنید</a>]</font></b></font></font></span>
برای چاپ مجدد ، نیازی برای چاپ مجدد فاکتور نیست ، همون یکبار کافیه.

با این توضیحات ، به نظر شما فقط از جدول اصلی استفاده کنم؟

meyti
20 / February / 2013, 12:57 AM
با توجه به کم و اضافه کردن قبل از تایید نهایی جدول تمپ باشه بهتره -
چون همونطور که میدانید حذف کردن رکوردها در بسیاری از بانک ها بطور فیزیکی رکوردها حذف نمیشوند و فقط نمایش داده نمیشوند و این باعث میشود که جدول اصلی شما حجم زیادی از فضا را اشغال کند .

b_e_shamlu
24 / February / 2013, 02:16 AM
با سلام
دوست عزیز به نظر میرسه که شما یک کار غیر معمول انجام داده اید و اون اینکه
1- دستور شمارش را به سیستم سپرده اید
2- حال میخواهید کنترل شمارش را از سیستم بگیرید
این دو مورد با هم همخوانی ندارد چراکه کدی که سیستم برای شما می سازد به هیچ وجهی تکراری نیست و به همین دلیل دیگر کدی را که ساخته نمی سازد
شما بهتر است همانطوری که مدیر فرمودند شماره سریال را خود شما بسازید یا اینکه وقتی رکوردی را که میخواهید حذف کنید عملا آن را حذف فزیکی نکنید بلکه اطلاعات آن را خالی کنید و یک فید دیگر به آن اضافه کنید بعنوان فیلد تست خالی بودن اطلاعات
*
با امید موفقیت

b_itman_b
25 / February / 2013, 10:24 PM
منم همچون مدیر و آقای شاملوی عزیز مخالف جداول تمپ* هستم.و اینکه یه سریالی که جز اصلی بلیط هست رو به این شکل تولید و دستکاری بشه