Permalink
Browse files

Refactoring checktpoint. Class "Resultado" now stands for "ResultSet"

  • Loading branch information...
rkhaotix committed Oct 27, 2012
1 parent f3deb79 commit 2b1c65a0525a60d635d901a4003fe548ef8c2164
@@ -6,8 +6,8 @@ DESTDIR = ../build/lib
OBJECTS_DIR = obj
LIBS += $$DESTDIR/$$LIBUTIL
-HEADERS += $$PWD/src/conexaobd.h \
- $$PWD/src/resultado.h
+HEADERS += $$PWD/src/dbconnection.h \
+ $$PWD/src/resultset.h
-SOURCES += $$PWD/src/conexaobd.cpp \
- $$PWD/src/resultado.cpp
+SOURCES += $$PWD/src/dbconnection.cpp \
+ $$PWD/src/resultset.cpp
@@ -1,4 +1,4 @@
-#include "conexaobd.h"
+#include "dbconnection.h"
const QString ConexaoBD::SSL_DESATIVADO="disable";
const QString ConexaoBD::SSL_PERMITIR="allow";
@@ -155,9 +155,9 @@ QString ConexaoBD::obterVersaoSGBD(void)
.arg(versao.mid(4,1).toInt()));
}
-void ConexaoBD::executarComandoDML(const QString &sql, Resultado &resultado)
+void ConexaoBD::executarComandoDML(const QString &sql, ResultSet &resultado)
{
- Resultado *novo_res=NULL;
+ ResultSet *novo_res=NULL;
PGresult *res_sql=NULL;
//Dispara um erro caso o usuário tente reiniciar uma conexão não iniciada
@@ -174,7 +174,7 @@ void ConexaoBD::executarComandoDML(const QString &sql, Resultado &resultado)
QString(PQresultErrorField(res_sql, PG_DIAG_SQLSTATE)));
}
- novo_res=new Resultado(res_sql);
+ novo_res=new ResultSet(res_sql);
//Copia o novo resultado para o resultado do parâmetro
resultado=*(novo_res);
//Desaloca o resultado criado
@@ -23,7 +23,7 @@
#ifndef CONEXAOBD_H
#define CONEXAOBD_H
-#include "resultado.h"
+#include "resultset.h"
#include <map>
class ConexaoBD {
@@ -96,7 +96,7 @@ class ConexaoBD {
/* Executa um comando DML no servidor usando a conexão aberta
retornando um objeto de resutlado da consulta */
- void executarComandoDML(const QString &sql, Resultado &resultado);
+ void executarComandoDML(const QString &sql, ResultSet &resultado);
/* Executa um comando DDL no servidor usando a conexão aberta
sem retorno de objetos de resultado */
@@ -1,104 +0,0 @@
-/*
-# PostgreSQL Database Modeler (pgModeler)
-# Sub-project: Biblioteca libconexbd
-# Classe: Resultado
-# Description:o: Esta classe encapsula algumas funções de manipulação de resultados
-# de comandos SQL do PostgreSQL implementadas pela biblioteca libpq
-# Creation date:o: 14/07/2009
-#
-# Copyright 2006-2012 - Raphael Araújo e Silva <rkhaotix@gmail.com>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation version 3.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# The complete text of GPLv3 is at LICENSE file on source code root directory.
-# Also, you can get the complete GNU General Public License at <http://www.gnu.org/licenses/>
-*/
-#ifndef RESULTADO_H
-#define RESULTADO_H
-
-#include "exception.h"
-#include <libpq-fe.h>
-#include <cstdlib>
-
-class Resultado {
- private:
- /* Indica se o resultado foi copiado, este flag é utilizado
- para evitar falhas de segmentação na chamada do destrutor
- da classe, pois como o ponteiro resultado_sql é copiado
- para outro elementos, caso este seja destruído pode causar
- falha na referência. Sendo assim, tal ponteiro só é excluído
- quando este flag está marcado como falso */
- bool res_copiado;
- void destruirResultado(void);
-
- protected:
- //Armazena o índice atual da tupla, apenas para navegação
- int tupla_atual;
-
- /* Indica que o resultado foi gerado a partir de um comando
- o qual não gera tuplas. Exemplo: INSERT, DELETE, CREATE .. */
- bool res_sem_tuplas;
-
- //Armazena o objeto de resultado do comando SQL
- PGresult *resultado_sql;
-
- /* Esta classe só pode ser construída a partir de um
- resultado de comando SQL gerado na classe ConexaoBD */
- Resultado(PGresult *resultado_sql);
-
- public:
- //Constantes usadas na navegação nas tuplas de resultado
- static const unsigned TUPLA_INICIAL=0,
- TUPLA_FINAL=1,
- TUPLA_ANTERIOR=2,
- TUPLA_POSTERIOR=3;
-
- Resultado(void);
- ~Resultado(void);
-
- //Retorna o valor de uma determinada coluna
- char *obterValorColuna(const QString &nome_coluna);
- char *obterValorColuna(int idx_coluna);
-
- //Retorna o tamanho do dado alocado em uma determinada coluna
- int obterTamanhoColuna(const QString &nome_coluna);
- int obterTamanhoColuna(int idx_coluna);
-
- /* Retorna o número de linhas afetadas pelo comando que gerou
- o resultado caso este seja um INSERT, DELETE, UPDATE ou o
- número de tuplas vindas de um comando SELECT */
- int obterNumTuplas(void);
-
- //Retorna o número de colunas presentes em uma tupla
- int obterNumColunas(void);
-
- //Retorna o nome da coluna associada ao índice passado
- QString obterNomeColuna(int idx_coluna);
-
- //Retorna o índice da coluna associada ao nome passado
- int obterIndiceColuna(const QString &nome_coluna);
-
- //Retorna a tupla atual em que a navegação está
- int obterTuplaAtual(void);
-
- //Retorna se uma determinada coluna está em formato binário
- bool colunaFormatoBinario(const QString &nome_coluna);
- bool colunaFormatoBinario(int idx_coluna);
-
- //Método de navegação pelas tuplas do resultado
- bool acessarTupla(unsigned tipo_tupla);
-
- //Método de cópia entre resultados
- void operator = (Resultado &res);
-
- friend class ConexaoBD;
-};
-
-#endif
Oops, something went wrong.

0 comments on commit 2b1c65a

Please sign in to comment.