SirReadAlot
asked on
Line 14: Incorrect syntax near '='.
Hi experts,
i got the above error whilst running this code
SELECT @SQL = 'SELECT
licPolicy.numUniqueDevices ,
licPolicy.matchBaseLicOnly ,
product.prodID,
product.prodCode,
product.prodName,
product.prodDesc,
product.pfID,
product.prodLicName,
product.prodLicEncKey,
product.supported,
case product.supported when 1 then ''Yes'' else ''No'' end as status,
product.licVersion,
product.ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
END
FROM
licPolicy INNER JOIN
product ON licPolicy.prodID = product.prodID
ORDER BY ' + @SortColumn + ' ' + @Direction
exec(@SQL)
end
i can really see the mistake!! pls help
here is the calling code
========================== ========== =========
Public Shared Function GetAllProduct(ByVal sortCriteria As String, ByVal sortDir As String) As ArrayList
Dim arr As New ArrayList
Dim DBConnection As SqlConnection = Connection()
DBConnection.Open()
Dim cmdProduct As SqlCommand = New SqlCommand("SPR_GETALL_PRO DUCTS", DBConnection)
cmdProduct.CommandType = CommandType.StoredProcedur e
cmdProduct.Parameters.Add( "@SortColu mn", sortCriteria)
cmdProduct.Parameters.Add( "@Directio n", sortDir)
Try
Dim drProduct As SqlDataReader
drProduct = cmdProduct.ExecuteReader()
While drProduct.Read()
Dim productProfile As New ProductProfile
productProfile.prodID = DataUtil.IsNull(drProduct. Item("prod ID"), "")
productProfile.prodCode = DataUtil.IsNull(drProduct. Item("prod Code"), "")
productProfile.prodName = DataUtil.IsNull(drProduct. Item("prod Name"), "")
productProfile.prodDesc = DataUtil.IsNull(drProduct. Item("prod Desc"), "")
productProfile.pfID = DataUtil.IsNull(drProduct. Item("Prod uctFamily" ), "")
productProfile.prodLicName = DataUtil.IsNull(drProduct. Item("prod LicName"), "")
productProfile.prodLicEncK ey = DataUtil.IsNull(drProduct. Item("prod LicEncKey" ), "")
productProfile.supported = DataUtil.IsNull(drProduct. Item("stat us"), "")
productProfile.licVersion = DataUtil.IsNull(drProduct. Item("licV ersion"), "")
'Gets details from licPolicy Table
productProfile.numUniqueDe vices = DataUtil.IsNull(drProduct. Item("numU niqueDevic es"), "")
productProfile.matchBaseLi cOnly = DataUtil.IsNull(drProduct. Item("matc hBaseLicOn ly"), "")
arr.Add(productProfile)
End While
Return arr
Finally
DBConnection.Close()
End Try
End Function
thanks
i got the above error whilst running this code
SELECT @SQL = 'SELECT
licPolicy.numUniqueDevices
licPolicy.matchBaseLicOnly
product.prodID,
product.prodCode,
product.prodName,
product.prodDesc,
product.pfID,
product.prodLicName,
product.prodLicEncKey,
product.supported,
case product.supported when 1 then ''Yes'' else ''No'' end as status,
product.licVersion,
product.ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
END
FROM
licPolicy INNER JOIN
product ON licPolicy.prodID = product.prodID
ORDER BY ' + @SortColumn + ' ' + @Direction
exec(@SQL)
end
i can really see the mistake!! pls help
here is the calling code
==========================
Public Shared Function GetAllProduct(ByVal sortCriteria As String, ByVal sortDir As String) As ArrayList
Dim arr As New ArrayList
Dim DBConnection As SqlConnection = Connection()
DBConnection.Open()
Dim cmdProduct As SqlCommand = New SqlCommand("SPR_GETALL_PRO
cmdProduct.CommandType = CommandType.StoredProcedur
cmdProduct.Parameters.Add(
cmdProduct.Parameters.Add(
Try
Dim drProduct As SqlDataReader
drProduct = cmdProduct.ExecuteReader()
While drProduct.Read()
Dim productProfile As New ProductProfile
productProfile.prodID = DataUtil.IsNull(drProduct.
productProfile.prodCode = DataUtil.IsNull(drProduct.
productProfile.prodName = DataUtil.IsNull(drProduct.
productProfile.prodDesc = DataUtil.IsNull(drProduct.
productProfile.pfID = DataUtil.IsNull(drProduct.
productProfile.prodLicName
productProfile.prodLicEncK
productProfile.supported = DataUtil.IsNull(drProduct.
productProfile.licVersion = DataUtil.IsNull(drProduct.
'Gets details from licPolicy Table
productProfile.numUniqueDe
productProfile.matchBaseLi
arr.Add(productProfile)
End While
Return arr
Finally
DBConnection.Close()
End Try
End Function
thanks
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Can you show the lines above that particular statement?
ASKER
ok
ALTER PROCEDURE dbo.SPR_GETALL_PRODUCTS
@SortColumn varchar(255),
@Direction varchar(10)
AS
Declare @SQL varchar(8000)
BEGIN
SET NOCOUNT ON
SELECT @SQL = 'SELECT
licPolicy.numUniqueDevices ,
licPolicy.matchBaseLicOnly ,
product.prodID,
product.prodCode,
product.prodName,
product.prodDesc,
product.pfID,
product.prodLicName,
product.prodLicEncKey,
product.supported,
case product.supported when 1 then ''Yes'' else ''No'' end as status,
product.licVersion,
product.ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
END
FROM
licPolicy INNER JOIN
product ON licPolicy.prodID = product.prodID
ORDER BY ' + @SortColumn + ' ' + @Direction
exec(@SQL)
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE dbo.SPR_GETALL_PRODUCTS
@SortColumn varchar(255),
@Direction varchar(10)
AS
Declare @SQL varchar(8000)
BEGIN
SET NOCOUNT ON
SELECT @SQL = 'SELECT
licPolicy.numUniqueDevices
licPolicy.matchBaseLicOnly
product.prodID,
product.prodCode,
product.prodName,
product.prodDesc,
product.pfID,
product.prodLicName,
product.prodLicEncKey,
product.supported,
case product.supported when 1 then ''Yes'' else ''No'' end as status,
product.licVersion,
product.ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
END
FROM
licPolicy INNER JOIN
product ON licPolicy.prodID = product.prodID
ORDER BY ' + @SortColumn + ' ' + @Direction
exec(@SQL)
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ASKER
angel its
@SQL varchar(8000)
@SQL varchar(8000)
then, I don't see any problem in there...
ASKER
i still have the same errors with
ALTER PROCEDURE dbo.SPR_GETALL_PRODUCTS
@SortColumn varchar(255),
@Direction varchar(10)
AS
Declare @SQL varchar(8000)
BEGIN
SET NOCOUNT ON
SET @SQL = 'SELECT
licPolicy.numUniqueDevices ,
licPolicy.matchBaseLicOnly ,
product.prodID,
product.prodCode,
product.prodName,
product.prodDesc,
product.pfID,
product.prodLicName,
product.prodLicEncKey,
product.supported,
case product.supported when 1 then ''Yes'' else ''No'' end as status,
product.licVersion,
product.ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
END
FROM
licPolicy INNER JOIN
product ON licPolicy.prodID = product.prodID
ORDER BY '
exec(@SQL + @SortColumn + ' ' + @Direction)
--exec(@SQL)
end
ALTER PROCEDURE dbo.SPR_GETALL_PRODUCTS
@SortColumn varchar(255),
@Direction varchar(10)
AS
Declare @SQL varchar(8000)
BEGIN
SET NOCOUNT ON
SET @SQL = 'SELECT
licPolicy.numUniqueDevices
licPolicy.matchBaseLicOnly
product.prodID,
product.prodCode,
product.prodName,
product.prodDesc,
product.pfID,
product.prodLicName,
product.prodLicEncKey,
product.supported,
case product.supported when 1 then ''Yes'' else ''No'' end as status,
product.licVersion,
product.ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
END
FROM
licPolicy INNER JOIN
product ON licPolicy.prodID = product.prodID
ORDER BY '
exec(@SQL + @SortColumn + ' ' + @Direction)
--exec(@SQL)
end
ksaul is right, try
ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
instead of
product.ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
instead of
product.ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
ASKER
will do
SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
I now see the problem:
> product.ProductFamily = CASE product.pfID
> ...
> END
what are you trying to achieve there?
either it has to be:
product.ProductFamily , CASE product.pfID
...
END somecolname
or maybe this:
CASE product.pfID
...
END ProductFamily
or, maybe this:
product.ProductFamily + CASE product.pfID
...
END
> product.ProductFamily = CASE product.pfID
> ...
> END
what are you trying to achieve there?
either it has to be:
product.ProductFamily , CASE product.pfID
...
END somecolname
or maybe this:
CASE product.pfID
...
END ProductFamily
or, maybe this:
product.ProductFamily + CASE product.pfID
...
END
ASKER
thanks guys
i used this
ALTER PROCEDURE dbo.SPR_GETALL_PRODUCTS
@SortColumn varchar(255),
@Direction varchar(10)
AS
Declare @SQL varchar(8000)
BEGIN
SET NOCOUNT ON
SELECT @SQL = 'SELECT
licPolicy.numUniqueDevices ,
licPolicy.matchBaseLicOnly ,
product.prodID,
product.prodCode,
product.prodName,
product.prodDesc,
product.pfID,
product.prodLicName,
product.prodLicEncKey,
product.supported,
case product.supported when 1 then ''Yes'' else ''No'' end as status,
product.licVersion,
ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
END
FROM
licPolicy INNER JOIN
product ON licPolicy.prodID = product.prodID
ORDER BY ' + @SortColumn + ' ' + @Direction
exec(@SQL)
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
i used this
ALTER PROCEDURE dbo.SPR_GETALL_PRODUCTS
@SortColumn varchar(255),
@Direction varchar(10)
AS
Declare @SQL varchar(8000)
BEGIN
SET NOCOUNT ON
SELECT @SQL = 'SELECT
licPolicy.numUniqueDevices
licPolicy.matchBaseLicOnly
product.prodID,
product.prodCode,
product.prodName,
product.prodDesc,
product.pfID,
product.prodLicName,
product.prodLicEncKey,
product.supported,
case product.supported when 1 then ''Yes'' else ''No'' end as status,
product.licVersion,
ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
END
FROM
licPolicy INNER JOIN
product ON licPolicy.prodID = product.prodID
ORDER BY ' + @SortColumn + ' ' + @Direction
exec(@SQL)
end
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
SET @SQL = 'SELECT
licPolicy.numUniqueDevices
licPolicy.matchBaseLicOnly
product.prodID,
product.prodCode,
product.prodName,
product.prodDesc,
product.pfID,
product.prodLicName,
product.prodLicEncKey,
product.supported,
case product.supported when 1 then ''Yes'' else ''No'' end as status,
product.licVersion,
product.ProductFamily = CASE product.pfID
WHEN 10 THEN ''PC*MILER''
WHEN 15 THEN ''FleetSuite''
WHEN 100 THEN ''CoPilot''
ELSE ''CoPilot|Pocket''
END
FROM
licPolicy INNER JOIN
product ON licPolicy.prodID = product.prodID
ORDER BY '
exec(@SQL + @SortColumn + ' ' + @Direction)
now, how big is your variable @sql declared?