PDA

View Full Version : سوال فوری view



grand_ceasare
دوشنبه 26 تیر 1396, 03:45 صبح
سلام
من یک view دارم که از تلفیق چند جدول درست شده. توی برنامم میخوام وقتی یک دکمه رو کاربر زد برنامه یک سری داده رو وارد سه تا جدول کنه و حاصل این افزودن رو بصورت یک سطر در DBGrid نمایش میده , حالا من میخوام با زدن دکمه "افزودن" پس از آپدیت سه جدول (هر جدول چند فیلدش آپدیت میشه) و اضافه شدن یک سطر جدید به DBGrid برنامه با استفاده از دستورات sql چک کنه که آیا این view قبلا ایجاد شده یا نه؟ اگر ایجاد نشده بود اونو create کنه و اگه ایجاد شده بود refresh کنه و در ادامه ی refresh روی یک با چند ستون از view ءSUM بگیره . من میخوام دستورات شرطی if و else و ... رو ازطریق AdoQuery به sql پاس بدم و sql اینو واسم چک کنه. چیکار باید بکنم؟ یعنی دستورات sql به چه شکلی باید باشه؟ کوئری یی که باید بنویسم چی هست؟
ممنون میشم در صورت راهنمایی بطور کامل دستورات رو توضیح بدین تا یاد بگیرم .
ضمنا کارایی که خودم کردم تا الان به اینصورت بوده :
کد برای ایجاد view :

create view [dbo].[FcIns] AS (
SELECT
.
.
.
WHERE (field1 = 0 AND field2 = 1)
)



کد برای رفرش view :

exec sp_refreshview FcIns
کد برای محاسبه SUM فیلدهای یک رکورد :

select SUM(fcdTotalSum) from FcIns

یه سوال در ادامه :
میخواستم بدونم سرعت view گرفتن و SUM گرفتن روی این view و refresh کردن اون بالاتره یا راه دیگه ای واسه این کار هست که سرعتش بیشتر باشه؟
اصلا این کاری که من میخوام انجام بدم برای گرفتن حاصل جمع فیلدهای یک ستون , روش درستی هست یا نه؟
در ضمن شاید لازم باشه که بگم select ءview یی که گرفتم از تلفیق بیرونی ودرونی و راست و چپ روی چند جدول بدست اومده و من تصور کردم که اگه هربار بعد از اضافه کردن یک سطر بخوام این select تلفیقی رو اجرا کنم و روی ستونهای مورد نظرم sum بزنم زمان زیادی صرف میکنه و بهتره از view استفاده کنم و هربار فقط refreshش کنم.

ممنون میشم سریعتر راهنمایی کنید.
تشکر