PDA

View Full Version : اجرای چندین دستور Sql در یک پروسیجر



nazaninam
جمعه 21 اردیبهشت 1386, 19:11 عصر
با سلام
من در یک رویداد نیاز به دریافت چندین Query مختلف از روی بانکم دارم ، به نظرم اومد که اگر همه این Query ها (که هر کدوم یک مقدار رو بر می گردونند ) رو داخل یک Stored Procedure بنویسم بهتر از اینه که به ازای هر Query یک Procedure جدا صدا زده بشه.
مثلا این شکلی شده :



--- Get Today Count
SELECT COUNT(*) AS TodayCount
FROM dbo.TblStat
WHERE (psDt <= GETDATE()) AND (psDt > GETDATE() - 1) And (Psid=@PsID)
--- Get All Count
SELECT COUNT(*) AS AllCount
FROM dbo.TblStat
WHERE (Psid=@PsID)
--- Get Yesterday Count
SELECT COUNT(*) AS YesterdayCount
FROM dbo.TblStat
WHERE (psDt <= GETDATE()-1) AND (psDt > GETDATE() - 2) And (Psid=@PsID)



اولا میخواستم بدونم کارم درسته یا خیر؟
دوما مشکلی که پیش میاد اینه که مقدادیر رو نمیشه از طریق DataReader خوند ، یعنی فقط مقدار اولین Query خونده میشه ، ولی از طریق دیتاست تونستم مقادیر رو بخونم .
میخوام بدونم راهی بجز دیتاست نیست؟
ممنون

Behrouz_Rad
جمعه 21 اردیبهشت 1386, 21:47 عصر
اولا میخواستم بدونم کارم درسته یا خیر؟
بله! 100 درصد درسته... ایجاد Batch Query یکی از تکنیک های کاهش Round-Trip و سربار بر روی سرور هست.

دوما مشکلی که پیش میاد اینه که مقدادیر رو نمیشه از طریق DataReader خوند ، یعنی فقط مقدار اولین Query خونده میشه ، ولی از طریق دیتاست تونستم مقادیر رو بخونم .
میخوام بدونم راهی بجز دیتاست نیست؟
با استفاده از متد NextResult در DataReader می تونی به Recordset بعدی سویچ کنی.

موفق باشید.

nazaninam
شنبه 22 اردیبهشت 1386, 21:59 عصر
I Love U Man