Пример #1
0
        private void button1_Click(object sender, EventArgs e)
        {
            

            // Testa conexão com dados informados
            listLog.Items.Add(this.testeConexao(GetStringConexao(1)) + " - Usuario informado.");
            

            if (this.conn != null)
            {

                /*
                 * Referencias para trabalhar com Npgsql
                 * http://www.devmedia.com.br/forum/conexao-c-com-postgresql/134298
                 * http://cplus.about.com/od/howtodothingsinc/a/How-To-access-PostgreSQL-from-Csharp.htm
                 */


                int rows = 0;
                NpgsqlCommand sqlCmd;

                // Criar Banco e reportar ao usuario
                try
                {
                    if ((chkCriarBancoDeDados.Checked))
                    {
                        sqlCmd = new NpgsqlCommand(this.CreateDataBase, this.conn);
                        rows = sqlCmd.ExecuteNonQuery();
                        listLog.Items.Add("Banco de dados " + this.bancoDeDados + " criado " + rows);
                        
                    }

                }
                catch (Exception ex)
                {

                    listLog.Items.Add("Banco de dados não foi criado provavel existencia" + rows + ". Erro: " + ex.Message);
                }

                this.conn.ChangeDatabase(this.bancoDeDados);

                // Criar Sequencias para indices e reportar ao usuario
                try
                {

                    if ((!SequenciaExiste(this.tableClientes)))
                    {
                        sqlCmd = new NpgsqlCommand(this.CreateSequenceClientes, this.conn);
                        rows = sqlCmd.ExecuteNonQuery();
                        listLog.Items.Add("Sequence clientes criado ");
                    }

                    if ((!SequenciaExiste(this.tableSalas)))
                    {
                        sqlCmd = new NpgsqlCommand(this.CreateSequenceSalas, this.conn);
                        rows = sqlCmd.ExecuteNonQuery();
                        listLog.Items.Add("Sequence salas criado ");
                    }

                    if ((!SequenciaExiste(this.tableProdutos)))
                    {
                        sqlCmd = new NpgsqlCommand(this.CreateSequenceProdutos, this.conn);
                        rows = sqlCmd.ExecuteNonQuery();
                        listLog.Items.Add("Sequence produtos criado ");
                    }

                    if ((!SequenciaExiste(this.tableAgenda)))
                    {
                        sqlCmd = new NpgsqlCommand(this.CreateSequenceAgenda, this.conn);
                        rows = sqlCmd.ExecuteNonQuery();
                        listLog.Items.Add("Sequence Agenda criado ");
                    }

                    if ((!SequenciaExiste(this.tableContasAReceber)))
                    {
                        sqlCmd = new NpgsqlCommand(this.CreateSequenceContasAReceber, this.conn);
                        rows = sqlCmd.ExecuteNonQuery();
                        listLog.Items.Add("Sequence Contas a Receber criado ");
                    }

                    if ((!SequenciaExiste(this.tableLivroCaixa)))
                    {
                        sqlCmd = new NpgsqlCommand(this.CreateSequenceLivroCaixa, this.conn);
                        rows = sqlCmd.ExecuteNonQuery();
                        listLog.Items.Add("Sequence Livro Caixa criado ");
                    }

                    if ((!SequenciaExiste(this.tableMovimentacaoEstoque)))
                    {
                        sqlCmd = new NpgsqlCommand(this.CreateSequenceMovimentacaoEstoque, this.conn);
                        rows = sqlCmd.ExecuteNonQuery();
                        listLog.Items.Add("Sequence Movimentação Estoque criado ");
                    }
                }
                catch (Exception ex)
                {
                    listLog.Items.Add("Sequencias não criadas possivel existencia. Erro: " + ex);
                }

                // Criar tabelas e reportar ao usuario
                sqlCmd = new NpgsqlCommand(this.CreateClientes, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Tabela "+this.tableClientes+" criado " );

                sqlCmd = new NpgsqlCommand(this.CreateSalas, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Tabela " + this.tableSalas + " criado " );

                sqlCmd = new NpgsqlCommand(this.CreateProdutos, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Tabela " + this.tableProdutos + " criado ");

                sqlCmd = new NpgsqlCommand(this.CreateAgenda, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Tabela " + this.tableAgenda + " criado ");

                sqlCmd = new NpgsqlCommand(this.CreateContasARececeber, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Tabela " + this.tableContasAReceber + " criado ");

                sqlCmd = new NpgsqlCommand(this.CreateContasLivroCaixa, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Tabela " + this.tableLivroCaixa + " criado ");

                sqlCmd = new NpgsqlCommand(this.CreateContasMovimentacaoEstoque, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Tabela " + this.tableMovimentacaoEstoque + " criado ");

                // Atualizar Sequencias dos indices e reportar ao usuario
                sqlCmd = new NpgsqlCommand(this.AlterSequeneClientes, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Sequence clientes atualizadas " );

                sqlCmd = new NpgsqlCommand(this.AlterSequeneSalas, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Sequence salas atualizadas ");

                sqlCmd = new NpgsqlCommand(this.AlterSequeneProdutos, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Sequence produtos atualizadas ");

                sqlCmd = new NpgsqlCommand(this.AlterSequenceAgenda, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Sequence Agenda atualizadas ");

                sqlCmd = new NpgsqlCommand(this.AlterSequenceContasAReceber, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Sequence Contas A Receber atualizadas ");

                sqlCmd = new NpgsqlCommand(this.AlterSequenceLivroCaixa, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Sequence Livro Caixa atualizadas ");

                sqlCmd = new NpgsqlCommand(this.AlterSequenceMovimentacaoEstoque, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Sequence Movimentações Estoque atualizadas ");
                
                try
                {
                    // Criar usuário e reportar ao usuario
                    sqlCmd = new NpgsqlCommand(this.CreateUser, this.conn);
                    rows = sqlCmd.ExecuteNonQuery();
                    listLog.Items.Add("Usuario " + this.usuario + " criado ");
                    
                }
                catch (Exception)
                {

                    listLog.Items.Add("Usuario não criado possivel existencia.");
                }

                try
                {
                // Dar permissão ao usuário e reportar ao usuario
                sqlCmd = new NpgsqlCommand(this.GrantPrivileges, this.conn);
                rows = sqlCmd.ExecuteNonQuery();
                listLog.Items.Add("Permissões de acesso ao usuário consedidas ");
                }
                catch (Exception)
                {

                    listLog.Items.Add("Nao consedidas permissoes.");
                }
                /*
                string q = "INSERT INTO " + this.tableSalas + " (nome,capacidade) VALUES ('teste instalador',4);";
                try
                {
                    NpgsqlCommand cmd = conn.CreateCommand();
                    cmd.CommandText = q;
                    cmd.ExecuteScalar();
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                */

                // Testa conexão com dados de uso do programa
                this.conn.Close();
                listLog.Items.Add(this.testeConexao(GetStringConexao(2)) + " - Usuario do sistema.");
                if (this.conn != null)
                    this.conn.Close();
            }
        }
Пример #2
0
        private Boolean SequenciaExiste(String psNomeSeq)
        {
            try
            {
                String sSql = @"SELECT c.relname
                                FROM   pg_class c
                                JOIN   pg_namespace n ON n.oid = c.relnamespace
                                WHERE  c.relname = '" + this.csNomePadraoSeq1 + psNomeSeq  + this.csNomePadraoSeq2 + @"'
                                AND    n.nspname = 'public'";

                var sqlCmd = new NpgsqlCommand(sSql, this.conn);
                var rows = sqlCmd.ExecuteReader();

                try
                {
                    if ((rows != null) &&
                        (rows.HasRows))
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                finally
                {
                    if ((rows != null))
                        rows.Close();
                }
            }
            catch (Exception ex)
            {
                return false;
            }
        }