public override void SetDataSourceNames(StiData data, StiDataSource dataSource)
        {
            base.SetDataSourceNames(data, dataSource);

            dataSource.Name  = "PostgreSQLSource";
            dataSource.Alias = "PostgreSQLSource";
        }
        public override void CreateConnectionInDataStore(StiDictionary dictionary, StiSqlDatabase database)
        {
            try
            {
                #region Remove all old data from datastore
                int index = 0;
                foreach (StiData data in dictionary.DataStore)
                {
                    if (data.Name == database.Name)
                    {
                        dictionary.DataStore.RemoveAt(index);
                        break;
                    }
                    index++;
                }
                #endregion

                var sqlConnection = new NpgsqlConnection(database.ConnectionString);
                var data2         = new StiData(database.Name, sqlConnection);
                data2.IsReportData = true;
                dictionary.DataStore.Add(data2);
            }
            catch (Exception e)
            {
                StiLogService.Write(this.GetType(), e);
                if (!StiOptions.Engine.HideExceptions)
                {
                    throw;
                }
            }
        }
        public override StiDataColumnsCollection GetColumnsFromData(StiData data, StiDataSource dataSource, CommandBehavior commandBehavior)
        {
            var dataColumns = new StiDataColumnsCollection();
            var sqlSource   = dataSource as StiSqlSource;

            try
            {
                if (sqlSource.SqlCommand != null && sqlSource.SqlCommand.Length > 0 && data.Data is NpgsqlConnection)
                {
                    var connection = data.Data as NpgsqlConnection;
                    OpenConnection(connection, data, dataSource.Dictionary);

                    using (var dataAdapter = new NpgsqlDataAdapter(sqlSource.SqlCommand, connection))
                        using (DataTable dataTable = new DataTable())
                        {
                            dataTable.TableName = sqlSource.Name;

                            dataAdapter.SelectCommand.CommandTimeout = sqlSource.CommandTimeout;
                            dataAdapter.SelectCommand.Prepare();
                            dataAdapter.Fill(dataTable);

                            foreach (DataColumn column in dataTable.Columns)
                            {
                                dataColumns.Add(new StiDataColumn(column.ColumnName, column.Caption, column.DataType));
                            }
                        }

                    CloseConnection(data, connection);
                }
            }
            catch (Exception e)
            {
                StiLogService.Write(this.GetType(), e);
                if (!StiOptions.Engine.HideExceptions)
                {
                    throw;
                }
            }

            return(dataColumns);
        }
コード例 #4
0
		public override StiDataColumnsCollection GetColumnsFromData(StiData data, StiDataSource dataSource)
		{
			StiDataColumnsCollection dataColumns = new StiDataColumnsCollection();
			StiSqlSource sqlSource = dataSource as StiSqlSource;

			try
			{
				if (sqlSource.SqlCommand != null && sqlSource.SqlCommand.Length > 0)
				{
                    if (data.Data is SqlCeConnection)
					{
                        SqlCeConnection connection = data.Data as SqlCeConnection;
						OpenConnection(connection, data, dataSource.Dictionary);
                        using (SqlCeDataAdapter dataAdapter = new SqlCeDataAdapter(sqlSource.SqlCommand, connection))
						{
							DataTable dataTable = new DataTable();
							dataTable.TableName = sqlSource.Name;

							dataAdapter.SelectCommand.Prepare();							
														
							dataAdapter.FillSchema(dataTable, SchemaType.Source);
						
							foreach (DataColumn column in dataTable.Columns)
							{
								dataColumns.Add(new StiDataColumn(column.ColumnName, column.Caption, column.DataType));
							}

							dataTable.Dispose();
						}
						CloseConnection(data, connection);
					}
				}
			}
			catch (Exception e)
			{
				StiLogService.Write(this.GetType(), e);
			}
			
			return dataColumns;
		}
コード例 #5
0
		public override void SetDataSourceNames(StiData data, StiDataSource dataSource)
		{
			base.SetDataSourceNames(data, dataSource);

            dataSource.Name = "SqlCeSource";
            dataSource.Alias = "SqlCeSource";
		}
コード例 #6
0
		public override void CreateConnectionInDataStore(StiDictionary dictionary, StiSqlDatabase database)
		{
			try
			{
				#region remove all old data from datastore
				int index = 0;
				foreach (StiData oldData in dictionary.DataStore)
				{
					if (oldData.Name == database.Name)
					{
						dictionary.DataStore.RemoveAt(index);
						break;
					}
					index++;
				}
				#endregion

                SqlCeConnection sqlConnection = new SqlCeConnection(database.ConnectionString);
				
				StiData data = new StiData(database.Name, sqlConnection);
				data.IsReportData = true;
				dictionary.DataStore.Add(data);
				
			}
			catch (Exception e)
			{
                if (!StiOptions.Engine.HideMessages) Stimulsoft.Base.StiExceptionProvider.Show(e);
			}
		}