PDA

View Full Version : سوال: تعریف دو پارامتر با نام یکسان؟



SYNDROME
دوشنبه 16 اردیبهشت 1387, 21:55 عصر
من می خواهید دو پارامتر تعریف کنم که به هر دو یک مقدار بدهم.
چطور می توانم چنین کاری را انجام دهم؟یک چنین چیزی می خواهم.آیا امکان دارد؟


Select *
From Tbl_Test
Where Code = :Input Or ID = :Input

در سایت جستجو کردم ولی چیزی پیدا نکردم.
با تشکر از دوستان

Accidentboy
دوشنبه 16 اردیبهشت 1387, 23:52 عصر
با سلام
declare @input int
set @input=:input
Select *
From Tbl_Test
Where Code = @Input Or ID = @Input

من همیشه این کارو می کنم

mzjahromi
سه شنبه 17 اردیبهشت 1387, 06:50 صبح
به همین شکلی که تعریف کردید امکان داره. مشکلی نداره. من بارها این کار رو کردم.


میخواهید مقادیرشون یکسان باشه یا متفاوت؟

SYNDROME
سه شنبه 17 اردیبهشت 1387, 07:05 صبح
با تشکر از دوستان

با سلام
declare @input int
set @input=:input
Select *
From Tbl_Test
Where Code = @Input Or ID = @Input

من همیشه این کارو می کنم
دوست عزیز من می خواهم در دلفی این کار را انجام دهم.

به همین شکلی که تعریف کردید امکان داره. مشکلی نداره. من بارها این کار رو کردم.
میخواهید مقادیرشون یکسان باشه یا متفاوت؟
می خواهم مقدار یکسان به هر دو بدهم ولی زمانی که مقدار را به Input پاس می کند(من دو تا پارامتر از Input تعریف کرده ام) پیغام می دهد.


Parameter Object Is improperly defined.inconsistent or incomplete information was provided

مقدار را هم اینجوری پاس می کنم.


ADO.Parameters.ParamByName('Input').Value := 1;

مشکل از کجاست؟
با تشکر

Accidentboy
سه شنبه 17 اردیبهشت 1387, 17:45 عصر
خوب SYNDROME عزیز

همین query تو adoqurey اضافه کن
و

پارامتر رو بهش پاس بده

SYNDROME
سه شنبه 17 اردیبهشت 1387, 19:52 عصر
خوب SYNDROME عزیز

همین query تو adoqurey اضافه کن
و

پارامتر رو بهش پاس بده
دوست عزیز دست شما درد نکند.
ولی می خواهم دلیل مشکل کد بالا را متوجه شوم.
با تشکر از شما
منتظر راهنمایی دوستان هستم

SYNDROME
پنج شنبه 19 اردیبهشت 1387, 07:17 صبح
آیا کسی از دوستان نیست دلیل این مشکل را بداند؟
من منتظر نظرات دوستان هستم.
با تشکر

mzjahromi
پنج شنبه 19 اردیبهشت 1387, 08:46 صبح
من این مورد رو بارها انجام دادم و جواب گرفتم الان هم دوباره کد زیر رو با TQuery انجام دادم و مشکلی نداشت. اگر ممکنه نمونه کد رو بذارید


Select * From Account where Date1=:Input OR UserID>=:Input

SYNDROME
پنج شنبه 19 اردیبهشت 1387, 22:10 عصر
من این مورد رو بارها انجام دادم و جواب گرفتم الان هم دوباره کد زیر رو با TQuery انجام دادم و مشکلی نداشت. اگر ممکنه نمونه کد رو بذارید

حرف شما درست بود.
این مثال را خودم تست کردم و دقیقاً پیغام بالا را داد.


Select *
From Tbl_Test
Where ID <> :ID
And ID not in
(Select ID
From Tbl_Test1
Where ID = :ID)

فیلد ID از نوع Int است.
با تشکر از شما

SYNDROME
یک شنبه 22 اردیبهشت 1387, 21:30 عصر
آیا کسی از دوستان دلیل مشکل بنده را نمی داند؟
ممنون می شوم بنده را راهنمایی کنید.
با تشکر

Accidentboy
یک شنبه 22 اردیبهشت 1387, 21:59 عصر
دوست عزیز
منظور از سوال شما اینکه چرا اینکه یه مقدار برای دو پارامتر با یک نام پاس نمی شه

SYNDROME
دوشنبه 23 اردیبهشت 1387, 08:30 صبح
دوست عزیز
منظور از سوال شما اینکه چرا اینکه یه مقدار برای دو پارامتر با یک نام پاس نمی شه
من یک SElect نوشتم و دو تا پرامتر با نامهای یکسان تعریف کرده ام و می خواهم یک مقدار را برای هر دوی انها بفرستم ولی برنامه Error می دهد.
مثال را در صفحه قبل قرار دادم.
منتظر راهنمایی دوستان هستم

Amir_Safideh
دوشنبه 23 اردیبهشت 1387, 11:20 صبح
من هم همین مشکل رو داشتم و هر چه سعی کردم نشد که دو یا چند پارامتر رو با نام یکسان در کوئری مقدار دهی کنم و کوئری رو اجرا کنم به ناچار پارامترها را با نامهای مختلف مقدار دهی کردم . مشکل از کد شما نیست فکر میکنم که ساختار ابزار ADOQuery طوری است که با نامهای همانند مشکل داره .

SELECT * FROM Table1 WHERE (Field_1 > :@Param1) Or (Field_2 = :@Param2)

SYNDROME
دوشنبه 23 اردیبهشت 1387, 21:11 عصر
دوست عزیز Amir_Safideh
در صفحه قبل من دو تا مسال نوشته ام که در اولی دو پارامتر با نام یکسان نوشته ام که جواب می دهد ولی در دمی Error بر می گردد.
من منتظر راهنمایی دوستان هستم
موفق باشید