Click here to Skip to main content
15,889,877 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Dear all,

please solve this error while run the crystal report with the procedure.

Database connection error 'ADO ERROR CODE 0x80040e07'
desc: syntax error while converting varchar value.


i use S.P below:

ALTER PROCEDURE dbo.StoredProcedure2
	@DYS int,
	@comapny varchar(50)

AS
	/* SET NOCOUNT ON */
	
declare @dbname varchar(50)
DECLARE @EXECQ AS VARCHAR(8000)

set @dbname=''

if @comapny='FMCPL'
Begin
set @dbname='munim002'
End

else if @comapny='RBE'
begin
set @dbname='munim008'
End

else if @comapny='SDCC'
begin
set @dbname='munim005'
end 

else if @comapny='SBPL'
begin
set @dbname='munim004'
end 

else 
begin
set @dbname='munim017'
end

SET @EXECQ='SELECT '''+@comapny+''' as company,[sl].itname AS itemname,SUM([sl].qtyin) AS qtyin, SUM([sl].qtyout) AS qtyout,SUM([sl].qtyin)- SUM([sl].qtyout) as qty,[sl].unit AS unit, MAX([sl].docdt) AS maxdt,'+@dbname+'.dbo.itmast.material, 
'+@dbname+'.dbo.itgroup.dtldesc,'+@dbname+'.dbo.gdmast.gdname
FROM '+@dbname+'.dbo.[StockLederView] sl INNER JOIN
'+@dbname+'.dbo.itmast ON [sl].itcode = '+@dbname+'.dbo.itmast.itcode INNER JOIN
'+@dbname+'.dbo.itgroup ON '+@dbname+'.dbo.itmast.itgroup ='+@dbname+'.dbo.itgroup.code INNER JOIN
'+@dbname+'.dbo.gdmast ON [sl].gdcode ='+@dbname+'.dbo.gdmast.gdcode
GROUP BY [sl].itname, [sl].unit,'+@dbname+'.dbo.itmast.material,'+@dbname+'.dbo.itgroup.dtldesc,'+@dbname+'.dbo.gdmast.gdname
HAVING  SUM([sl].qtyin)- SUM([sl].qtyout) > 0 and (MAX([sl].DOCdt) <= DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE() -@DYS)))
ORDER BY [sl].itname'

--print @EXECQ
--set @execq='select itname,SUM(qtyin)from '+@dbname+'.dbo.StockLederView'
Exec (@execq)
Posted

1 solution

Try this..hope it work...

SQL
ALTER PROCEDURE dbo.StoredProcedure2
	@DYS varchar(5),
	@comapny varchar(50)
 
AS
	/* SET NOCOUNT ON */
	
declare @dbname varchar(50)
DECLARE @EXECQ AS VARCHAR(8000)
 
set @dbname=''
 
if @comapny='FMCPL'
Begin
set @dbname='munim002'
End
 
else if @comapny='RBE'
begin
set @dbname='munim008'
End
 
else if @comapny='SDCC'
begin
set @dbname='munim005'
end 
 
else if @comapny='SBPL'
begin
set @dbname='munim004'
end 
 
else 
begin
set @dbname='munim017'
end
 
SET @EXECQ='SELECT '''+@comapny+''' as company,[sl].itname AS itemname,SUM([sl].qtyin) AS qtyin, SUM([sl].qtyout) AS qtyout,SUM([sl].qtyin)- SUM([sl].qtyout) as qty,[sl].unit AS unit, MAX([sl].docdt) AS maxdt,'+@dbname+'.dbo.itmast.material, 
'+@dbname+'.dbo.itgroup.dtldesc,'+@dbname+'.dbo.gdmast.gdname
FROM '+@dbname+'.dbo.[StockLederView] sl INNER JOIN
'+@dbname+'.dbo.itmast ON [sl].itcode = '+@dbname+'.dbo.itmast.itcode INNER JOIN
'+@dbname+'.dbo.itgroup ON '+@dbname+'.dbo.itmast.itgroup ='+@dbname+'.dbo.itgroup.code INNER JOIN
'+@dbname+'.dbo.gdmast ON [sl].gdcode ='+@dbname+'.dbo.gdmast.gdcode
GROUP BY [sl].itname, [sl].unit,'+@dbname+'.dbo.itmast.material,'+@dbname+'.dbo.itgroup.dtldesc,'+@dbname+'.dbo.gdmast.gdname
HAVING  SUM([sl].qtyin)- SUM([sl].qtyout) > 0 and (MAX([sl].DOCdt) <= DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE() - '+ @DYS +')))
ORDER BY [sl].itname'
 
--print @EXECQ
--set @execq='select itname,SUM(qtyin)from '+@dbname+'.dbo.StockLederView'



Thanks
 
Share this answer
 
Comments
[no name] 12-Oct-12 4:56am    
my 5
it works perfct Ashish Bhai
AshishChaudha 12-Oct-12 4:58am    
Yours always welcome.
ridoy 12-Oct-12 5:00am    
+5

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900