PDA

View Full Version : سوال: تعیین عرض یک فیلد در Query



Knophler
چهارشنبه 20 آذر 1387, 10:54 صبح
Width فیلدهای Select شده یک کوئری را در تعریف select ، چگونه می توان به دلخواه تعیین نمود تا در هنگام اتصال به یک DBGrid به مشکل برنخوریم.
مرسی

mafazel
چهارشنبه 20 آذر 1387, 11:31 صبح
در دستور Select لازم نیست طول رکورد را بدهید. دستور Select بصورت پیش فرض کل طول فیلد رو از جدول گرفته و بر می گرداند. برای اینکه مقداری از رکورد شما نیفتد (بخصوص در فیلد text یا string) اولا در جدول طول فیلد را به اندازه کافی بگیرید. درثانی در Query (دابل کلیک Query و اضافه کردن فیلد ها ) هر رکورد یک DisplayWidth دارد که اون رو هم به اندازه کافی بگیرید (مساوی طول آن در جدول).
این مسئله در درج در جدول هم مهمه و ممکنه در هنگام استفاده از برنامه هر از گاهی با خطایی با مضمون «از دست دادن بخشی از اطلاعات در صورت درج» و درج نشدن مواجه شوید. طول جمله ای که باید درج شود باید کمتر یا برابر طول فیلد باشد که خیلیها این مسئله را قبل از درج چک نمی کنند.

Knophler
چهارشنبه 20 آذر 1387, 13:47 عصر
دستور Select بصورت پیش فرض کل طول فیلد رو از جدول گرفته و بر می گرداند


مشکل من هم همینجاست چون مثلا طول فیلد آدرس رو زیاد گذاشتم و DBGrid رو بصورت Scroll طولانی و نافرم در میاره و چون این DBGrid رو درقسمت های دیگه برنامه به کوئری های دیگه وصل می کنم می خواستم اگه بشه طول نمایش فیلدها ار طریق کدنویسی تعیین کنم

mafazel
چهارشنبه 20 آذر 1387, 16:22 عصر
من در دستورات SQL راهی برای منظور شما سراغ ندارم.
فعلا میتوانید بعد از باز کردن Query مشخصه DisplayWidth فیلدهای مورد نظر رو مقدار بدید:


...
ADOQuery1.Open;
ADOQuery1.FieldByName('Address').DisplayWidth := 30;
...

behzad_dr
چهارشنبه 20 آذر 1387, 20:34 عصر
دوست عزیز من اصلا با اون نباید کاری داشته باشی ، شما باید dbgrid تونو تنظیم کنی و autosize غیر فعال کنی .. تنظیم اولیه اونو با دست انجام بده ..