PDA

View Full Version : ساخت query با کد بهتره با با محیط طراحی



bmanfy
سه شنبه 31 فروردین 1389, 10:38 صبح
با سلام.
من تا حالا هر چی برنامه مینوشتم یک دیتا ماژول داشتم و کلی AdoQuery توش برای ارتباط با جداولم میساختم .
حالا به نظر شما دوستان با تجربه این که هر وقت به یک جدول نیاز دارم فورا با کد نویسی یه AdoQuery بسازم و ازش استفاده کنم بهتره یا به همون سبک قدیمی ؟

Felony
سه شنبه 31 فروردین 1389, 10:53 صبح
تنها تفاوت این هست که مدیریت دیتا ماجول راحت تر از شئ ساخته شده به صورت RunTime هست ( از لحاظ کدنویسی و شلوغی محیط کدنویسی ) .

pezhvakco
سه شنبه 31 فروردین 1389, 17:24 عصر
درود :

من تا حالا هر چی برنامه مینوشتم یک دیتا ماژول داشتم و کلی AdoQuery توش برای ارتباط با جداولم میساختم .
به نظر من خود دلفی این روش رو پیشنهاد میکنه چون این امکان رو فراهم کرده ( برای مدیریت بهتر و دسترسی سریع تر ) .

بهتره از Query ( پرس و جو ) برای انجام درخواست ها استفاده کنی و نه برای ارتباط دائمی با جداول .
SQL = Structured "Query" Language ( زبان پرس و جوى ساختارى )

فکر خوش .

bmanfy
سه شنبه 31 فروردین 1389, 17:49 عصر
خوب برای برنامه ها ی کوچک که خوب اره .
اما منظور من برای برنامه ها ی بزرگه . یعنی برای برنامه های خیلی بزرگ که تعدادش خیلی زیاده.



بهتره از Query ( پرس و جو ) برای انجام درخواست ها استفاده کنی و نه برای ارتباط دائمی با جداول .

چرا ؟؟؟

pezhvakco
سه شنبه 31 فروردین 1389, 18:19 عصر
چون در اصل برای این کار ( پرس و جو ) طراحی شده .

حسین شهریاری
سه شنبه 31 فروردین 1389, 21:42 عصر
سلام

ظاهرا اکثرا فکر میکنن اگه در حالت طراحی اشیای پایگاه داده را ایجاد کنند نتیجه بهتری خواهند گرفت.ولی اصلا اینگونه نیست بلکه در اینصورت زمان ایجاد کنترل نیز اضافه میشه.شاید توی زمان Load برنامه اثر بهتری داشته باشه و برنامه زوتر اجرا بشه ولی سرعت کار هنگام ایجاد و استفاده و ربط دادن اونا به هم پایین میاد.اکثر دوستان این روش را از برنامه های تحت سکوی دات نت یاد گرفتن(مثل #C) ولی باید توجه کرد که مجموعه دات نت از روش Close Dataset واستفاده میکنه ولی دلفی(Win32) از روش OPen Dataset استفاده میکنه.پس بهتره در Win32 توی هر زبانی که کد نویسی میکنی از همون روش پیشنهادی استفاده کنید.

موفق باشید

vcldeveloper
چهارشنبه 01 اردیبهشت 1389, 00:47 صبح
ظاهرا اکثرا فکر میکنن اگه در حالت طراحی اشیای پایگاه داده را ایجاد کنند نتیجه بهتری خواهند گرفت.ولی اصلا اینگونه نیست بلکه در اینصورت زمان ایجاد کنترل نیز اضافه میشه.
اینکه شما در زمان Runtime یا Design time کنترل ها را بسازید، تاثیر چندانی روی سرعت ساخته شدن آنها نداره.

برتری مواردی که کاربر در سوالش ذکر کرده وابسته به سناریوی مورد استفاده کاربر هست. اگر قرار باشه کاربر هر زمان به کنترلی نیاز داره، آن را بسازه، در صورتی که ارجاعاتش به آن کنترل کم باشه، این روش بهینه هست، اما اگر ارجاعاتش زیاد باشه، ایجاد کنترل مربوطه برای یک بار، و استفاده از آن در دفعات مختلف کارایی بهتری داره.


ولی باید توجه کرد که مجموعه دات نت از روش Close Dataset واستفاده میکنه ولی دلفی(Win32) از روش OPen Dataset استفاده میکنه.
این تاثیری در صورت مسئله ایجاد نمیکنه، کما اینکه در دلفی کنترل این موضوع دست خودتان هست، و برنامه نویس میتونه تصمیم بگیره که بصورت Disconnected dataset از بانک استفاده کنه یا نه. کاربردهای این دو هم با هم متفاوت هست، و هر کدام کاربردهای خودشان را دارند.

bmanfy
چهارشنبه 01 اردیبهشت 1389, 14:47 عصر
مجموعه دات نت از روش Close Dataset واستفاده میکنه ولی دلفی(Win32) از روش OPen Dataset استفاده میکنه

یعنی چی؟



برتری مواردی که کاربر در سوالش ذکر کرده وابسته به سناریوی مورد استفاده کاربر هست. اگر قرار باشه کاربر هر زمان به کنترلی نیاز داره، آن را بسازه، در صورتی که ارجاعاتش به آن کنترل کم باشه، این روش بهینه هست، اما اگر ارجاعاتش زیاد باشه، ایجاد کنترل مربوطه برای یک بار، و استفاده از آن در دفعات مختلف کارایی بهتری داره.

مثلا فرض کنید یکی از جداول مربوط به مشتریان هست و ممکنه در طول روز به دفعالت برای چک کزدن حساب اشخاص یا هر کاری بهش مراجعه بشه .
یعنی این رو در زمان طراحی
و جدولی مثل بانکها که خوب ممکنه خیلی کم بهش مراجعه بشه رو در زمان طراحی

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


ممنون از همگی

vcldeveloper
چهارشنبه 01 اردیبهشت 1389, 17:07 عصر
حالا اگر من تمام جوادل رو چه پر کاربرد و چه کم کاربرد رو در زمان طراحی بسازم ممکنه چه عواقبی داشته باشه ؟
اگر حجم داده هایی که در هر کدام از آنها نگه می دارید بالا باشه، شما بدون آنکه نیازی به این داده ها داشته باشید، بیخودی جداول را باز نگه دارید، هم حجم زیادی از حافظه کلاینت بیخودی مصرف میشه، هم ممکنه بخاطر باز بودن بی مورد اتصال به سرور، بعضی از منابع سرورتون بی خودی اشغال بشند.
جداولی که در طولانی مدت به داده هایشان نیاز ندارید را باید ببندید (لازم نیست اون جدول رو Free کنید). اگر اتصال به بانک اطلاعاتی را هم نیاز ندارید، یا سرور بانک اطلاعاتی منابع محدودی داره، یا اتصال به سرور همیشه امکان پذیر نیست، می تونید اتصال به سرور را هم هر وقت نیاز نداشتید قطع کنید.

bmanfy
پنج شنبه 02 اردیبهشت 1389, 12:03 عصر
ممنون از لطفتون .
حالا یک سوال دیگه که اینجا برام پیش اومد اینه که هر فرمی که کاربر نیاز داره همونجا میسازم و بعد از کارش هم فورا اون فرم رو free میکنم .
خوب جداول رو هم دورن همون فرم در زمان ساخته شدن فرم میخوام بسازم . و قاعدتا باید بعد از هر بار free شدن فرم ها اون ها هم free بشه !؟ (ایا همین طوره ؟)
پس در هر مرحله هر ساختن و free شدن میتونه هزینه بر، برای برنامه باشه ؟

راستش من هدفم اینه بتونم برنامه ها یی رو که مینویسم بهینه باشه . پس اگر هی سوال میکنم و ابتدایی هستش ، دوستان به بزرگی خودتون ببخشید .

vcldeveloper
پنج شنبه 02 اردیبهشت 1389, 12:41 عصر
خوب جداول رو هم دورن همون فرم در زمان ساخته شدن فرم میخوام بسازم . و قاعدتا باید بعد از هر بار free شدن فرم ها اون ها هم free بشه !؟ (ایا همین طوره ؟)
بله.


پس در هر مرحله هر ساختن و free شدن میتونه هزینه بر، برای برنامه باشه ؟
بله.

....