存储过程的未知查询引擎错误

时间:2015-04-08 16:53:45

标签: sql-server crystal-reports vb6

我希望我在这篇文章中遵循协议,因为这是我的第一篇文章,但我需要一些指导。我不确定还有什么可以尝试,但现在就是。

- 我们有一个用VB6编写的内部程序,它使用水晶报告9(v9.2.0.448)。一切都运行得很好,直到我尝试在水晶报告中进行存储过程。当报告通过水晶查看器显示时...它给我错误/消息:"未知的查询引擎错误"。当我尝试在应用程序内部运行报表时,我得到随机结果(某些字段在报表上显示完全正常(非旋转字段,同一SP(SP1)中的其他字段(透视字段)导致错误(另一次它将运行/另一次它不会。我经过并将每个字段单独放在那里,保存报告,运行程序以查看哪个丢错,哪个没有。有一段时间,一些转向字段显示在一个SP1中,但是当我回到那个字段时,它决定不显示。另一个SP(SP2),没有转动字段想要工作......我不# 39;知道如何更好地解释这一点而不进入故事。)SP在SQL管理器中的工作非常好。我得到了我想要的结果.SP在水晶设计师中工作得非常好,一切都显示......没有错误。这是表格的样子:

- > table:ticketfactorDT

TicketID ~ DrectionType ~ TicketSeries ~ SeriesCatagory~ FactorID ~ FactorValue

554559   ~ I            ~ GRAIN       ~ grain ~ BCFM     ~ 0 

554559   ~ I            ~ GRAIN       ~ grain ~ DMG     ~ 0

554559   ~ I            ~ GRAIN       ~ grain ~ MST.     ~ 15

554559   ~ I            ~ GRAIN       ~ grain ~ T.W.     ~ 56

- >表:商品

CommodID ~ FactorID ~ FactorOrder

CY ~ BCFM ~ 4

CY ~ DMG ~ 3

CY ~ Dock ~ 5

CY ~ MST. ~ 2

CY ~ T.W. ~ 1

- > SP1:

TicketID~TSeries~SCat~DType~0~1~2~3~4~5~6(< - factor order#)

554559~GRAIN~ grain~I~NULL~56~15~0~0~NULL~NULL

- > SP2:

CID~0~1~2~3~4~5~6(< - factor order#)

CY~NULL~T.W。 ~MST。 ~DMG~BCFM~Dock~NULL

SP1 = 

SELECT @col2 = ISNULL(@col2 + ', ', '') + QUOTENAME(FactorOrder) 
FROM (SELECT distinct FactorOrder  FROM Factor) as Factors;

- 选择@ col2

SET @sql2 = N'SELECT TicketID, TicketSeries, SeriesCatagory, DirectionType, ' + @col2 + '
             from (SELECT T.TicketID, T.TicketSeries, T.SeriesCatagory, T.DirectionType, FactorValue, FactorOrder
                   FROM (Factor FT INNER JOIN TicketFactorDT TFD ON FT.FActorID = TFD.FactorID) INNER JOIN Tickets T ON T.TicketID = TFD.TicketID AND T.TicketSeries = TFD.TicketSeries AND T.SeriesCatagory = TFD.SeriesCatagory AND T.DirectionType = TFD.DirectionType) factor
             Pivot ( 
                max(FactorValue) 
                for FactorOrder In(' + @col2 + '))as ordr;'

exec sp_executesql @sql2

SP2 = 

----GIVES ME THE FACTOR IDS FROM FACTOR TABLE BASED ON FACTOR ORDER

DECLARE @sql1 as nvarchar(2000);
DECLARE @col1 as nvarchar(2000);

SELECT @col1 = ISNULL(@col1 + ', ', '') + QUOTENAME(FactorOrder) 
FROM (SELECT distinct f.FactorOrder  FROM Factor F inner join Commodity C on c.CommodityID = f.CommodityID) as Factors;

--select @col1

SET @sql1 = N'Select CommodityID, ' + @col1 + '
             from (Select FT.CommodityID, FT.factorId, factorOrder 
                   From (Factor FT INNER JOIN TicketFactorDT TFD ON FT.FActorID = TFD.FactorID)) factor
             Pivot ( 
                max(FactorID) 
                for FactorOrder In(' + @col1 + '))as odr;'

exec sp_executesql @sql1

- >对不起,很长的帖子。我希望这不会引起混淆,但我试图提供尽可能多的信息来帮助理解。我在过去的2-3天里一直在这,只是为了得到一条错误信息,我不知道该怎么做/怎么修复,这是非常令人沮丧的。如果任何人有任何想法,提示,尝试的事情,我做错的事情,任何事情都会有所帮助。大声笑。我只是迷失在这一个

Inhouse程序是windows形式的VB6。

Crystal报告:9,版本高于

Sql manager studio 2012

报告数据库类型是OLE DB(ADO)

报告提供者是SQLOLEDB

我的机器有水晶8,9,11& 13(我相信)......拥有最新的发动机组

0 个答案:

没有答案