Hallo,
Ich nutze aktuell den Report Server in der Version 25. Sollte der hier beschriebene Bug in der aktuellen Version schon behoben sein dann kann das hier einfach ignoriert werden - ansonsten bitte einfach mal prüfen.
Ich benutze das “Description” Feld im ReportServer um weitere Eigenschaften des Reports zu speichern (Titel, Klasse, Typ…). Dafür habe ich mir eine Json Struktur ausgedacht, die ich ein dieses Feld packe. Denke nicht, dass das mit dem Fehler zu tun hat und ich erwähne es nur der Vollständigkeit halber - Funktioniert auch alles super. Wenn nun aber der Text in dem Feld französisch ist und ein ’ enthält schlägt der Export fehl - und damit meine ich den Export des Templates in eine Datei die ich in einer anderen Instanz des Report Servers importieren kann.
Beispiel: Ce rapport vous donnera un compte rendu détaillé de vos dépenses postales au cours d’une période donnée.
Fehler:
Type
SQLiteException
Message
SQL logic error or missing database near “une”: syntax error
Detail
System.Data.SQLite.SQLiteException (0x80004005): SQL logic error or missing database
near “une”: syntax error
at System.Data.SQLite.SQLite3.Prepare(SQLiteConnection cnn, String strSql, SQLiteStatement previous, UInt32 timeoutMS, String& strRemain)
at System.Data.SQLite.SQLiteCommand.BuildNextCommand()
at System.Data.SQLite.SQLiteDataReader.NextResult()
at System.Data.SQLite.SQLiteDataReader…ctor(SQLiteCommand cmd, CommandBehavior behave)
at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
at combit.ReportServer.Util.ExportUtil.AddTableContent(String tableName, DataSet data)
at combit.ReportServer.WebUI.Controllers.SettingsController.ExportTableWithFolders(ExportUtil exportUtil, String mainTableName, String mainTableIdColumn, List1 mainTableIdList, String folderTableName) at combit.ReportServer.WebUI.Controllers.SettingsController.ExportTemplate(ExportUtil exportUtil, List
1 templates)
at combit.ReportServer.WebUI.Controllers.SettingsController.Export(ExportModel model, List1 selectedTemplates) at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2 parameters)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c.b__9_0(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_0.b__0()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_2.b__2()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_2.b__2()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_2.b__2()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_2.b__2()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>c__DisplayClass11_2.b__2()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_6.b__4()
at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass3_1.b__1(IAsyncResult asyncResult)
Der Workarround ist für mich recht leicht, ich muss die Description ändern, exportieren, importieren und die Description wieder zurück ändern - ist zwar lästig aber machbar. Hoffe das hilft euch trotzdem.
mfg
Kai