PDA

View Full Version : مقایسه کویری اکسس با اس کیو ال



ali_bagheri34
چهارشنبه 20 شهریور 1387, 16:48 عصر
سلام دوستان
من یادمه که توی اکسس در کویری آن می توانستیم یک شرط متغیر بگزاریم یعنی در شرط این گونه بنویسیم
[کد پرسنلی خود را وارد کنید] وقتی اجرا می کردیم از کاربر سوال می کرد

حال با اس کیو ال اگر بخواهیم از این روش استفاده کنیم چه باید کرد من در اس کیو ال در قسمت وییو توانسته ام شرط ثابت بگذارم ---

-- یک مثال واقعی در سیستم حسابداری سال مالی را با یک وییو بصورت استاتیک ساخته ام و این وییو پایه ای برای برنامه بوده و با بیشتر جداول همیشه جوین بوده و حال مشکل این است که در هر سال من باید یک وییو جدید مربوط به همان سال را بسازم می خواهم این کار را انجام ندهم و از داخل برنامه شرط را برای اس کیو ال پست کنم

لطفا راهنمایی کنید

Amir_Safideh
پنج شنبه 21 شهریور 1387, 10:33 صبح
View ها قابلیت دریافت مقدار رو به صورت پارامتر ندارن .شما میتوید خروجی View رو در برنامه فیلتر کنید یا اینکه شما برای اینکار میتونید از پروسیجرهای اس کیو ال استفاده کنید . یعنی دستور سلکت رو در بدنه یک پروسیجر بنویسید و مقادیر رو بهش پاس کنید که این تو اکسس همونی هستش که شما کوئری اکسس میگید بهش .

CREATE PROCEDURE PROCEDURE_NAME
@Param INT AS
SELECT *
FROM TABLE_1
WHERE Field_1 = @Param
-----------------
موفق باشید .

ali_bagheri34
پنج شنبه 21 شهریور 1387, 16:22 عصر
View ها قابلیت دریافت مقدار رو به صورت پارامتر ندارن .شما میتوید خروجی View رو در برنامه فیلتر کنید یا اینکه شما برای اینکار میتونید از پروسیجرهای اس کیو ال استفاده کنید . یعنی دستور سلکت رو در بدنه یک پروسیجر بنویسید و مقادیر رو بهش پاس کنید که این تو اکسس همونی هستش که شما کوئری اکسس میگید بهش .

CREATE PROCEDURE PROCEDURE_NAME
@Param INT AS
SELECT *
FROM TABLE_1
WHERE Field_1 = @Param
-----------------
موفق باشید .


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

Amir_Safideh
پنج شنبه 21 شهریور 1387, 17:05 عصر
دوست عزیز یه توضیح کوتاه خدمتتون عرض میکنم . من خدمتون عرض کردم که شما اگر نیاز دارید که یک مقدار رو به صورت متغییر (نه یک مقدار ثابت) در کوئری قرار بدید در اینصورت به جای ویو از پروسیجر ها استفاده کنید . و پروسیجر ها هر چند که دارای خروجی هستند( مانند جداول و ویوها) ولی قابلیت این رو ندارن که ازشون به عنوان یک ابزار در دسترس مثل جداول و ویوها استفاده کرد چون اونها باید Exec بشن تا خروجی داشته باشن . شما تمام چیزهائی رو که لازم داری به راحتی میتونی در قالب یک پروسیجر قرار بدی و پروسیجر رو هر بار در برنامت با مقدار مورد نیازت اجرا کنی و خروجی رو بگیری بدون نیاز به ویو .
--------------
موفق باشید .

AminSobati
جمعه 22 شهریور 1387, 00:49 صبح
اگر View به شکلی که پارامتر بهش پاس کنین میتونه کمکتون کنه، بهتره به توابع فکر کنین: Inline Table Valued Functions

ali_bagheri34
سه شنبه 26 شهریور 1387, 10:03 صبح
اگر View به شکلی که پارامتر بهش پاس کنین میتونه کمکتون کنه، بهتره به توابع فکر کنین: Inline Table Valued Functions

سلام

متشکرم

ali_bagheri34
سه شنبه 26 شهریور 1387, 10:07 صبح
متشکرم آقای AminSobati