ورود

View Full Version : استفاده از sp-select در وی بی



seeco1234
سه شنبه 05 مرداد 1389, 12:38 عصر
با سلام به دوستان. به ساده ترین حالت سوالم رو مطرح میکنم.
من یه sp از نوع select میخوام بنویسم که در vb6 اون رو صدا کنم. کاربرد در فیلترینگ فیلدها از 1 فیلد تا هر چند تا بنا به نیاز کاربر .
ساده ترین اون رو با این مضمون پیدا کردم:
در اس کیو ال sp ما این است:

CREATE PROCEDURE [SP_Select_tblMainType]
@empid int
AS
,Select CodeName
,nMainTypeId
,cMainTypeName
,cMChar from tblMainType
WHERE nMainTypeId =@empid
Order By cMChar
GO


در وی بی اینو داریم:

Dim cmd1 As New ADODB.Command
Set cmd1 = New ADODB.Command

cmd1.ActiveConnection = ConnStr
cmd1.CommandType = adCmdStoredProc
cmd1.CommandText = "SP_Select_tblMainType"

cmd1.Parameters.Append cmd1.CreateParameter("empid", adVarChar, adParamInput, 6, txtCode.Text)

Set rstMainType = cmd1.Execute

If Not rstMainType.EOF Then
txtMainName = rstMainType.Fields(0)
txtMainCode = rstMainType.Fields(1)

End If
Set cmd1.ActiveConnection = Nothing


خب این sp اگه پارامتر داشته باشه کار میکنه. مشکل من موقعیه که where من با هیچی برخورد نمیکنه یعنی در ابتدای لود فرم من که هیچ فیلتری صورت نگرفته تکلیف این query چیه. بعد ممکنه چند تا and استفاده شه تو این query که از چند تا فیلتر در برنامه اجبارا نخواخیم از همه فیلتر ها استفاده کنیم و فقط مثلا نام و نام خانوادگی رو فیلتر کنیم و بقیه null میمونند.
در اصل من تو load اولیه فرم خودم اینو میخوام:
select * from tblMainType

و اگر فیلتری صورت گرفت کوئریم به کار خودش ادامه بده

ممنون همه

MMR_1344
چهارشنبه 06 مرداد 1389, 18:59 عصر
دوست عزیز
میتونی با دستور شرطی کنترل کنی اگر مقدار متغیر قرار گرفته در دستور Where خالی بود اونوقت این بخش حذف و در غیر اینصورت اون رو اجراء کنه

seeco1234
یک شنبه 04 مهر 1389, 14:10 عصر
دوست عزیز
میتونی با دستور شرطی کنترل کنی اگر مقدار متغیر قرار گرفته در دستور Where خالی بود اونوقت این بخش حذف و در غیر اینصورت اون رو اجراء کنه

خب ممنون از پاسخت اما اگه من 30 تا پارامتر داشته باشم چی ؟30 تا شرط بگذارم؟
مثلا فیلدهای نام و نام خانوادگی پر باشه ولی محل صدور خالی باشه. خب من sp رو یه بار نوشتم.
از تو برنامه اگه query مینوشتم بله میشد به ازا موقعیت های مختلف به query مون and اضافه کنم.
ولی تو sp ما منتظره که پارامتر بهش پاس بدم و یکی که خالیه چی پاس بدم که به error بر نخوره؟