Странная ошибка Crystal Report (Неизвестная ошибка механизма запросов) - PullRequest
5 голосов
/ 07 июля 2011

У меня есть приложение для Windows, которое использует Crystal Reports 2008 в качестве инструмента отчетности. Очень долго работал нормально, но вчера, когда я пытался загрузить любой отчет, я получил эту ошибку:

CrystalDecisions.CrystalReports.Engine.DataSourceException: Unknown Query Engine Error
Error in File C:\Users\Magdy\AppData\Local\Temp\rpt_Stock_Cost {DC276D4F-79F4-43B9-8168-24E6B7BF490A}.rpt:
Unknown Query Engine Error ---> System.Runtime.InteropServices.COMException: Unknown Query Engine Error
Error in File C:\Users\Magdy\AppData\Local\Temp\rpt_Stock_Cost {DC276D4F-79F4-43B9-8168-24E6B7BF490A}.rpt:
Unknown Query Engine Error
   at CrystalDecisions.ReportAppServer.Controllers.DatabaseControllerClass.ReplaceConnection(Object oldConnection, Object newConnection, Object parameterFields, Object crDBOptionUseDefault)
   at CrystalDecisions.CrystalReports.Engine.Table.SetDataSource(Object val, Type type)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
   --- End of inner exception stack trace ---
   at CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSourceInternal(Object val, Type type)
   at CrystalDecisions.CrystalReports.Engine.ReportDocument.SetDataSource(DataSet dataSet)
   at Diamonds.UIL.Forms.frm_ReportViewer.Load_Report(String File_FullPath, DataSet DS) in E:\Development\Bitco\Diamond\Project\Diamond 2.0.1\Diamonds\UIL\Reports\Forms\Viewer\frm_ReportViewer.cs:line 256

Вот код, который я использовал для загрузки и назначения источника данных для отчета:

DataSet ds = new DataSet();
reportDocument_.Load(File_FullPath);
reportDocument_.SetDataSource(ds);

Где ds может быть типизированным набором данных.

После некоторого поиска в Google я нашел некоторые результаты, которые говорят, что у меня должны быть Сетевые службы, пользовательская временная папка в Windows. Хотя я думаю, что это для веб-приложений, а не для Windows. Я попробовал это как для временной папки, так и для указанной выше папки в исключении, но ни одна не помогла.

Я использую Visual Studio 2010, C # 4.0, приложение для Windows

Есть идеи, что может быть не так?

1 Ответ

11 голосов
/ 30 августа 2013

Если вы компилируете в VS2010 (или VS2012) на компьютере с Win7, попробуйте добавить следующее в app.config :

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

Если это не сработает (как на моей машине), попробуйте скомпилировать в VS2010 на машине WinXP.

...