source: edificiomix/trunk/formconexion.cpp @ 13

Revision 13, 6.2 KB checked in by enmanuelmoreira, 9 years ago (diff)
  • Property svn:executable set to *
Line 
1#include "formconexion.h"
2#include "ui_formconexion.h"
3#include "conectarbd.h"
4
5#include <QSettings>
6#include <QMessageBox>
7#include <QString>
8#include <QStringList>
9
10FormConexion::FormConexion(QWidget *parent) :
11    QWidget(parent),
12    ui(new Ui::FormConexion)
13{
14    ui->setupUi(this);
15    this->setWindowFlags(Qt::CustomizeWindowHint | Qt::WindowCloseButtonHint | Qt::WindowContextHelpButtonHint);
16    //this->leerConfig();
17
18    QStringList drivers = QSqlDatabase::drivers();
19    drivers.removeAll("QMYSQL3");
20    drivers.removeAll("QOCI8");
21    drivers.removeAll("QODBC3");
22    drivers.removeAll("QPSQL7");
23    drivers.removeAll("QTDS7");
24    drivers.removeAll("QODBC");
25    drivers.removeAll("QSQLITE");
26    QSettings config("edificiomix.ini", QSettings::IniFormat);
27    QString sqltype = config.value("bd/driver","").toString();
28    QString direccion = config.value("bd/direccion","").toString();
29    /*QString dbname = config.value("bd/dbname","").toString();*/
30    QString usuario = config.value("bd/usuario","").toString();
31    QString contrasena = config.value("bd/contrasena","").toString();
32    QString puerto = config.value("bd/puerto","").toString();
33
34    ui->comboDriver->addItems(drivers);
35    if (sqltype !="")
36    {
37        int index = ui->comboDriver->findText(sqltype);
38
39        ui->comboDriver->setCurrentIndex(index);
40    }
41    if (direccion != "")
42    {
43        ui->campoDireccion->setText(direccion);
44    }
45    /*if (dbname != "")
46    {
47        editDBName->setText(dbname);
48    }*/
49    if (usuario != "")
50    {
51        ui->campoUsuario->setText(usuario);
52    }
53    if (contrasena != "")
54    {
55        ui->campoContrasena->setText(contrasena);
56    }
57
58    if (puerto != "")
59    {
60        ui->campoPuerto->setText(puerto);
61    }
62}
63
64FormConexion::~FormConexion()
65{
66    delete ui;
67}
68
69void FormConexion::on_botonCancelar_clicked()
70{
71    this->close();
72}
73
74void FormConexion::on_botonGuardar_clicked()
75{
76    if (ui->campoDireccion->text() != "" && ui->campoUsuario->text() != "" && ui->campoContrasena->text() != "" && ui->campoPuerto->text() != "")
77    {
78        try
79        {
80            // guardamos el archivo de configuracion
81            QSettings config("edificiomix.ini", QSettings::IniFormat);
82            config.setValue("bd/driver", ui->comboDriver->currentText());
83            config.setValue("bd/direccion", ui->campoDireccion->text());
84            config.setValue("bd/usuario", ui->campoUsuario->text());
85            config.setValue("bd/contrasena", ui->campoContrasena->text());
86            config.setValue("bd/puerto", ui->campoPuerto->text());
87
88            // mostramos un mensaje
89            QMessageBox::information(this, trUtf8("Informacion"), trUtf8("La conexion ha sido guadarda correctamente"));
90        }
91        catch (std::exception & e)
92        {
93            // mostramos un mensaje de error
94            QMessageBox::critical(this, trUtf8("Error"), e.what());
95        }
96        // cerramos el formulario
97        this->close();
98    }
99    else
100    {
101        QMessageBox::critical(this, trUtf8("Error"), trUtf8("Todos los datos son necesarios"));
102    }
103}
104
105void FormConexion::on_botonProbar_clicked()
106{
107    if (ui->campoDireccion->text() != "" && ui->campoUsuario->text() != "" && ui->campoContrasena->text() != "" && ui->campoPuerto->text() != "")
108    {
109
110        QSqlDatabase db;
111        db.addDatabase(ui->comboDriver->currentText());
112        if (!db.isOpen())
113        {
114            db.setHostName(ui->campoDireccion->text());
115            db.setUserName(ui->campoUsuario->text());
116            db.setPassword(ui->campoContrasena->text());
117            db.setPort(ui->campoPuerto->text().toInt());
118            db.setDatabaseName("edifconfig");
119            if (!db.open())
120            {
121                QMessageBox::critical(0, QApplication::trUtf8("Sql Server - Error %1")
122                                         .arg(QString::number(db.lastError().number())),
123                                         QApplication::trUtf8("No se pudo cargar la base de datos: %1")
124                                         .arg(db.lastError().databaseText()));
125            }
126            else
127            {
128                QMessageBox::information(this, trUtf8("Informacion"), \
129                                      trUtf8("Conexion Exitosa"));
130            }
131        }
132        else
133        {
134            QMessageBox::information(this, trUtf8("Informacion"), \
135                                  trUtf8("ya estas conectado"));
136        }
137    }
138    else
139    {
140        QMessageBox::critical(this, trUtf8("Error"), \
141                              trUtf8("Todos los datos son necesarios"));
142    }
143
144
145
146
147
148
149    /*ConectarBD testConexion;
150
151    if (ui->campoDireccion->text() != "" && ui->campoUsuario->text() != "" && ui->campoContrasena->text() != "" && ui->campoPuerto->text() != "")
152    {
153        QSqlDatabase nuevaConexion;
154        nuevaConexion.setHostName(ui->campoDireccion->text());
155        nuevaConexion.setUserName(ui->campoUsuario->text());
156        nuevaConexion.setPassword(ui->campoContrasena->text());
157        nuevaConexion.setPort(ui->campoPuerto->text().toInt());
158        if (testConexion.probarConexion(nuevaConexion))
159        {
160            QMessageBox::information(this, trUtf8("Informacion"), \
161                                     trUtf8("Conexion Existosa"));
162        }
163        else
164        {
165            QMessageBox::critical(this, trUtf8("Error"), \
166                                  trUtf8("Conexion Erronea"));
167        }
168    }
169    else
170    {
171        QMessageBox::critical(this, trUtf8("Error"), \
172                              trUtf8("Todos los datos son necesarios"));
173    }*/
174}
175
176/*void FormConexion::leerConfig()
177{
178
179}*/
180
181void FormConexion::on_comboDriver_currentIndexChanged()
182{
183    QString driver = ui->comboDriver->currentText();
184    if (driver == "QPSQL") {
185        ui->campoPuerto->setEnabled(true);
186    }
187    if (driver == "QMYSQL") {
188        ui->campoPuerto->setEnabled(true);
189    }
190    /*if (driver == "QSQLITE") {
191        ui->campoPuerto->setEnabled(false);
192    }
193    if (driver == "QODBC") {
194        ui->campoPuerto->setEnabled(false);
195        ui->campoPuerto->setEnabled(false);
196    }*/
197}
Note: See TracBrowser for help on using the repository browser.