Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
monfu
Yak Posting Veteran
81 Posts |
Posted - 2006-06-29 : 06:28:57
|
| Dear allI have the following code in a stored procedure:- @priceMin int, @priceMax intASBEGIN IF @priceMin = '0' SET @priceMin = NULL IF @priceMax = '0' SET @priceMax = NULL Declare @SQL varchar(1000)-- Selection of the column namesSET @SQL = 'SELECT Cars.carID, Cars.fk_vehicleClassID, Cars.carRegNo, Cars.fk_MakeID, Cars.fk_ModelID, Cars.carPrice, Cars.carYear, Cars.carMileage, Cars.fk_EngineSizeID, Cars.carKms, Cars.fk_GearboxID, Cars.fk_FuelID, Cars.fk_BranchID, Cars.carDesc, Cars.carSPOffer, Cars.carSPOfferText, Make.makeTit, Model.modelTit, Cars.fk_VehicleStatusID FROM Cars INNER JOIN Make ON Cars.fk_MakeID = Make.makeID INNER JOIN Model ON Cars.fk_ModelID = Model.modelID WHERE Cars.fk_VehicleStatusID = 1'-- Price Range CalcIF @priceMin IS NOT NULL OR @priceMax IS NOT NULL IF @priceMax = '999999' BEGIN SET @SQL = @SQL + ' AND carPrice > '+CAST(@priceMin AS varchar(4)) ENDELSE BEGIN SET @SQL = @SQL + ' AND carPrice BETWEEN '+CAST(@priceMin AS varchar(4)) +' AND '+CAST(@priceMax AS varchar(4)) ENDThis works fine when i insert 0 for priceMin and 0 for priceMax, however, when I insert a number, for example 10000, this stored proc breaks.can you please help me out?ThanksJohann |
|
|
harsh_athalye
Master Smack Fu Yak Hacker
5581 Posts |
Posted - 2006-06-29 : 06:45:05
|
| Can you be little specific and tell us exactly what happens when you punch in any non-zero value ?I think the problem is with the cast statement because if you punch 10000 to cast into varchar(4), you are going to get crazy output. Increase the size say varchar(10) and check the result.Harsh AthalyeIndia."Nothing is Impossible" |
 |
|
|
|
|
|
|
|