PDA

View Full Version : تیک زدن یک فیلد بولین در dbgrid به وسیله دکمه



khoshblagh
چهارشنبه 13 اردیبهشت 1391, 07:35 صبح
با سلام خدمت دوستان
میخواهم یک فیلد بولین در یک جدول dbgrid را به جای تیک زدن مستقیم از طریق کد نویسی در یک دکمه اینکار را انجام دهم.من با کد زیر میخواستم اینکار را انجام بدهم که جواب نداد.به نظر شما مشکل این کد چیست؟ متشکرم


DBGridEh1. FieldColumns['Tik'].DisplayText:='true' ;

zidane
چهارشنبه 13 اردیبهشت 1391, 10:28 صبح
بايد مقدار رو از طريق query يا table اي كه به گريد وصل شده تغيير بديد

khoshblagh
چهارشنبه 13 اردیبهشت 1391, 11:24 صبح
بايد مقدار رو از طريق query يا table اي كه به گريد وصل شده تغيير بديد
با تشکر از پاسختان.
در این صورت عملا باعث ثبت رکورد میشود که مورد نظر نمیباشد. زیرا تا زمان تائید کاربر نباید در بانک ثبت گردد. متشکرم

tiphooo
چهارشنبه 13 اردیبهشت 1391, 12:08 عصر
شما همان کاری که دوستمان گفت انجام بدهید و اگر می خواهید حتما تاییده کاربر داشته باشید از Transaction استفاده کنید
به صورتی که با ورود به فرم ADOConnection را به حالت Transaction می برید به صورت ADOConnection1.BeginTrans
و هر کاری دلتان خواست بکنید بعد در صورتی که کاربر دکمه تایید را زدADOConnection.CommitTrans و اگر انصراف داد ADOConnection.RollbackTrans را وارد کنید
درست است عملا دستور Post را فراخوانی کرده اید ولی اطلاعات تا تایید نهایی در دیتابیس Post نمی شود
منتهی اگر این کار را در چند فرم انجام دادید مطمئن شوید که کاربر دیگری در فرم دیگری در حالت Transaction نباشد که با ADOConnectio.InTransaction که یک مقدار بولی دارد چک می شود

Felony
پنج شنبه 14 اردیبهشت 1391, 13:32 عصر
پراپرتی LockType مربوط به AdoQuery یا ... خودتون رو با ltBatchOptimistic مقداردهی کنید ، از این به بعد تا زمانی که متد UpdateBatch رو فراخوانی نکنید رکوردهاتون با مقادیر جدید به روز نمیشن .