PDA

View Full Version : Upddate کردن یک View



FROZONE
دوشنبه 15 مرداد 1386, 16:34 عصر
با عرض خسته نباشید
در یکی از فرمهای برنامم یک ADOQuery دارم که در خاصیت Sql آن یک View را فراخوانی میکنم . بصورت زیر :


Select * From View1

در زمان اجرای فرم برنامه تعدادی نامعین فیلد رو به یکی از Tableهایی که داخل View استفاده شده اضافه میکنم ولی این تغییر در فیلد ها به View1 اعمال نمیشود به خاطر همین مجبورم هر بار از داخل SQLServer بصورت دستی View رو با اجرا کردن Update کنم. میخواستم بدونم روشی وجود داره که بتونم View رو از داخل برنامه خودم Update کنم.

Batman
دوشنبه 15 مرداد 1386, 16:52 عصر
اگه اشتباه نکنم این کد رو بذار
adoquery1.active:=false;
adoquery1.active:=true;

FROZONE
سه شنبه 16 مرداد 1386, 14:28 عصر
اگه اشتباه نکنم این کد رو بذار
adoquery1.active:=false;
adoquery1.active:=true;
با تشکر از دوست عزیزم
در صورتی که قصد داشته باشم مقادیر رکوردهای یک View را Update کنم روش شما کاملا صحیح است .ولی زمانیکه در ساختار یکی از جدول ها که در یک View استفاده شده تغییری انجام شود (برای مثال یکی از فیلد های جدول را حذف کنیم ) دیگر روش فوق جوابگو نیست.

Batman
سه شنبه 16 مرداد 1386, 16:55 عصر
میشه یه مثال بزنید
اگه اشتباه نکنم شاید یه select دوباره کار رو راه بندازه

supporter
جمعه 19 مرداد 1386, 13:28 عصر
دوست عزیر حالتی که گفتید وجود داره.
یعنی اگه View ای به شکل Select * from TableName تعریف کنید و بعد از اون ساختار جدولتون رو تغییر بدین Viewتون به روزرسانی نمی شه
به نطر من شما باید پس از تغییر ساختار جدولتون Veiw تون رو Alter کنید.




ALTER Table Table1 ADD F1 VARCHAR(50)
GO
ALTER VIEW SELECT * FROM Table1
GO