PDA

View Full Version : تعریف پارامتر در sql



milad-fa
سه شنبه 09 شهریور 1389, 19:29 عصر
با سلام
من با vb6 و sql server 2000 برنامه نویسی می کنم.میخواستم بدونم تعریف پارامتر در sql به چه صورته ؟(اگه طریقه تعریف پارامتر sql در vb باشه که چه بهتر)
مرسی

hossein_h62
سه شنبه 09 شهریور 1389, 21:45 عصر
تعریف متغیرها در SQLServer :



Declare @x SmallInt

milad-fa
سه شنبه 09 شهریور 1389, 22:07 عصر
با تشکر
ببخشید حالا به چه صورت میتونم به این پارامتر یه مقدار مثلا 12 بدم؟
البته من میخوام این مقدار رو از یک textbox در vb بگیره.
اگه در vb اطلاع ندارید در همین sql هم بگید ممنون میشم.
مرسی.

Rejnev
سه شنبه 09 شهریور 1389, 22:13 عصر
set @x=12
or
select @x=12

milad-fa
سه شنبه 09 شهریور 1389, 22:40 عصر
من با این دستورات:

Cmd.CommandText = "Declare @FName nvarchar"
Cmd.CommandText = "Insert Into tblTest (FName)Values(@FName)"
Cmd.CommandText = "SELECT @FName = 12"
Cmd.Execute
میخوام با یه پارامتر INSERT کنم،ولی به من این ERROR رو میده:

Must Declare the variable '@FName'.
دلیل این ERROR چیه و باید چیکار کنم؟
لطفاً راهنماییم کنید.
مرسی.

Rejnev
سه شنبه 09 شهریور 1389, 22:43 عصر
commandText رو باید به قبلی اضافه کنید نه جایگزین


Cmd.CommandText = "Declare @FName nvarchar"
Cmd.CommandText = Cmd.CommandText+"SELECT @FName = 12"
Cmd.CommandText = Cmd.CommandText+"Insert Into tblTest (FName)Values(@FName)"
Cmd.Execute


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

milad-fa
سه شنبه 09 شهریور 1389, 23:01 عصر
از کدهای شما استفاده کردم این ERROR رو داد:

.'Line 1: Incorrect syntax near '@FNAME
البته برای تعریف پارامتر وقتی بانک access باشه از دستورات زیر استفاده میکنم :

Cmd.ActiveConnection = Conn
Cmd.CommandType = adCmdText
Cmd.CommandText = "Insert Into tblTest (FName)Values(@FName)"
Cmd.Parameters.Refresh
Cmd.Parameters.Item("@FName").Value = "12"
Rst.CursorType = adOpenKeyset
Rst.CursorLocation = adUseClient
Set Rst = Cmd.Execute
و کاملاً درست جواب میده ولی وقتی بانکم sql باشه تو تعریف پارامتر این ERROR رو بهم میده:

Run-time error '3265':
Item cannot be found in the collection corresponding to the requested name or ordinal
به خاطر همین تصمیم گرفتم با خود دستورات SQL پارامتر تعریف کنم.

Rejnev
سه شنبه 09 شهریور 1389, 23:23 عصر
این رو ببین:
http://www.freevbcode.com/ShowCode.Asp?ID=3687
همچنین با این کلید میتونی سرچ کنی:
ado command parameter vb6

milad-fa
چهارشنبه 10 شهریور 1389, 00:09 صبح
با آدرس Page ای که دادی فکر کنم بتونم مشکلم رو حل کنم فعلاً روش وقت نذاشتم.دستت درد نکنه.
یه سوال داشتم دوست عزیز :
من میخوام رو بانکم Password بزارم که کسی نتونه Table ها و Record هامو ببینه و دستکاری کنه.
البته تو Securety->Logins یه User تعریف کردم ولی فقط تو زمان کانکت محدودیت ایجاد میکنه و اگه کسی بانک رو برداره و هر کامپوتر دیگه Attach کنه میتونه اطلاعاتمو بخونه.
مرسی.

Rejnev
چهارشنبه 10 شهریور 1389, 00:41 صبح
راستش اطلاعات زیادی ندارم.
میتونی توی بخش sql سایت سرچ کنی.

milad-fa
چهارشنبه 10 شهریور 1389, 00:51 صبح
شرمنده :خجالت:
اطلاع داری Store Procedure چه تفاوتی با View داره؟
من تا حالا با Store Procedure کار نکردم.

milad-fa
چهارشنبه 10 شهریور 1389, 01:37 صبح
mohammad_bagherani واقعاً دمت گرم داداش دستت درد نکنه :تشویق:خیلی ممنون:قلب:
بالاخره به لطف شما دوست عزیز تونستم مشکلی که خیلی وقت بود اعصابمو خرد کرده بود حل کنم.(تعریف پارامتر SQL در VB6)
دستت بابت آدرس Page ای که دادی درد نکنه.
تشکر ...
بازم مرسی.

Rejnev
چهارشنبه 10 شهریور 1389, 11:56 صبح
لطفا این موارد رو سرچ کن یا یک تاپیک جدید بزن. الآنه که صدای مدیران در بیاد. چون توی یک تاپیک با موضوع پارامتر در Sql داری همه جور سوالی میکنی.

شرمنده :خجالت:
اطلاع داری Store Procedure چه تفاوتی با View داره؟
من تا حالا با Store Procedure کار نکردم.
StoredProc یا SP یک رواله که میتونه پارامتر ورودی داشته باشه و یک بدنه داره که هر کدی رو که دوست داری میشه وسطش نوشت(مثلا select یا insert یا ...)
SP رو فقط میشه اجرا کرد:



Exec MyStoredProc [@param1Value(like 10) , @param2(like 'ali')]

اما view یک select هست که خروجیش مثل یک جدول جدید میمونه با فیلدهایی که در اون سلکت نوشتی میگیره. حالا برای استفاده از اون view دوباره باید ازش select بگیری:



select * from MyView

milad-fa
پنج شنبه 11 شهریور 1389, 19:50 عصر
لطفا این موارد رو سرچ کن یا یک تاپیک جدید بزن. الآنه که صدای مدیران در بیاد. چون توی یک تاپیک با موضوع پارامتر در Sql داری همه جور سوالی میکنی.

ok.
ببخشید امکان داره یه Store Procedure برام بنویسی که با دو پارامتر که داده هاشم دستی دادی تویه جدول tblTest و فیلدهای FName و LName یک عمل Insert انجام بده.
مرسی ...

Rejnev
پنج شنبه 11 شهریور 1389, 21:31 عصر
create proc myProc @a nvarchar(20),@b nvarchar(20) as
begin
insert into tblTest(fname,lName)values(@a,@b);
end
'for execute:
dim q as string
q="exec myProc "+txtName.Text+","+txtLName.Text
'then execute it

Sk1900n3
پنج شنبه 08 مهر 1389, 22:15 عصر
با آدرس Page ای که دادی فکر کنم بتونم مشکلم رو حل کنم فعلاً روش وقت نذاشتم.دستت درد نکنه.
یه سوال داشتم دوست عزیز :
من میخوام رو بانکم Password بزارم که کسی نتونه Table ها و Record هامو ببینه و دستکاری کنه.
البته تو Securety->Logins یه User تعریف کردم ولی فقط تو زمان کانکت محدودیت ایجاد میکنه و اگه کسی بانک رو برداره و هر کامپوتر دیگه Attach کنه میتونه اطلاعاتمو بخونه.
مرسی.

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


هرچند در خود اس کیول میتونید شما کاربرانی با مجوز دسترسی واسشون تعریف کنی
مثلا کاربر a اجازه ی فقط ثبت رکورد در جدول tb دارد