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(); } }
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; } }