From 608f4ffebf844aa0de7e5171c27a2f88fb73de61 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sun, 31 Mar 2013 17:50:57 +0200 Subject: [PATCH] PullModel Panel - SqlServer 2012 --- .../WizardPanels/PullModelPanel.cs | 11 ++++-- .../ReportWizard/WizardPanels/ResultPanel.cs | 39 ++++++++++++------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs index bb794410ad..3b8fd97053 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs @@ -3,6 +3,7 @@ using System; using System.Data; +using System.Data.SqlClient; using System.Globalization; using System.Reflection; using System.Windows.Forms; @@ -13,7 +14,6 @@ using ICSharpCode.Data.Core.Interfaces; using ICSharpCode.Data.Core.UI.UserControls; using ICSharpCode.SharpDevelop; - namespace ICSharpCode.Reports.Addin.ReportWizard { /// @@ -239,8 +239,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard { if (parentDatabase != null) { - this.connectionString = "Provider=" + parentDatabase.Datasource.DatabaseDriver.ODBCProviderName + ";" + parentDatabase.ConnectionString; - this.txtSqlString.Enabled = true; +// this.connectionString = + parentDatabase.ConnectionString; +// this.connectionString = "Driver={SQLServer};" + "Provider=SQLOLEDB;" + parentDatabase.ConnectionString; +//var cs = new SqlConnection(); +//cs. + this.connectionString = "Provider=SQLOLEDB;" + parentDatabase.ConnectionString; +// this.connectionString = parentDatabase.ConnectionString; +this.txtSqlString.Enabled = true; if (this.firstDrag) this.txtSqlString.Text = string.Empty; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs index de5afd7356..557efced0c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs @@ -19,6 +19,7 @@ using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.DataAccess; using ICSharpCode.Reports.Core.Globals; using ICSharpCode.Reports.Core.Project.BaseClasses; +using ICSharpCode.Reports.Core.Project.Interfaces; using ICSharpCode.SharpDevelop; namespace ICSharpCode.Reports.Addin.ReportWizard @@ -65,15 +66,16 @@ namespace ICSharpCode.Reports.Addin.ReportWizard DataSet dataSet = ResultPanel.CreateDataSet (); this.txtSqlString.Text = model.ReportSettings.CommandText; + + this.connectionObject = CreateConnection (); + var dataAccess = new SqlDataAccessStrategy(model.ReportSettings,connectionObject); switch (model.ReportSettings.CommandType) { case CommandType.Text: - this.connectionObject = CreateConnection (); - var dataAccess = new SqlDataAccessStrategy(model.ReportSettings,connectionObject); - dataSet = dataAccess.ReadData(); - dataSet.Tables[0].TableName = CreateTableName (reportStructure); + dataSet = DatasetFromSqlText(dataAccess); + break; case CommandType.StoredProcedure: - dataSet = DatasetFromStoredProcedure(); + dataSet = DatasetFromStoredProcedure(dataAccess); break; case CommandType.TableDirect: MessageService.ShowError("TableDirect is not suppurted at the moment"); @@ -112,24 +114,27 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - DataSet DatasetFromStoredProcedure() + private DataSet DatasetFromSqlText(IDataAccessStrategy dataAccess) + { + var dataSet = dataAccess.ReadData(); + dataSet.Tables[0].TableName = CreateTableName (reportStructure); + return dataSet; + } + + + private DataSet DatasetFromStoredProcedure(IDataAccessStrategy dataAccess) { - this.connectionObject = CreateConnection(); DataSet dataSet = ResultPanel.CreateDataSet(); - IProcedure procedure = reportStructure.IDatabaseObjectBase as IProcedure; + IProcedure procedure = reportStructure.IDatabaseObjectBase as IProcedure; var paramCollection = CheckParameters(procedure); - if (paramCollection.Count > 0) { FillParameters(paramCollection); reportStructure.SqlQueryParameters.AddRange(paramCollection); } - - var dataAccess = new SqlDataAccessStrategy(model.ReportSettings,connectionObject); dataSet = dataAccess.ReadData(); dataSet.Tables[0].TableName = procedure.Name; - return dataSet; } @@ -137,7 +142,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard void FillParameters(ParameterCollection paramCollection) { - model.ReportSettings.ParameterCollection.AddRange(paramCollection); + foreach (var param in paramCollection) { + SqlParameter s = new SqlParameter() + { + ParameterName = param.ParameterName, + }; + model.ReportSettings.SqlParameters.Add(s); + } CollectParametersCommand p = new CollectParametersCommand(model); p.Run(); } @@ -230,7 +241,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override bool ReceiveDialogMessage(DialogMessage message) { - + reportStructure = (ReportStructure)base.CustomizationObject; if (message == DialogMessage.Activated) { ShowData();