
Hacer consultas Sql en una funcion de otra clase en Qt C++
Publicado por Jose Remigio (12 intervenciones) el 09/02/2016 17:19:26
Hola buen dia, estoy aprendiendo a programar con qt, no estoy muy familiarizado con c++, sin embargo la entiendo un poco mas que java. La cuestion es lo siguiente, quiero hacer una consulta en una funcion o metodo en otra clase, y despues llenar el QTableView, yo en VB.net pasaba el control como un parametro ejemplo:
En el Formulario:
En la Clase:
Ahi podia hacer la consulta y llenar el control
Estuve investigando por internet la forma de hacer esto en Qt, claro en QTableView y he visto que esta no es la forma correcta de utilizar las clases, seria mejor crear una funcion que te devuelva esos datos y LLENARLO EN FORMULARIO "NO EN LA CLASE", ahora como podria hacer esto? intente hacer esto:
conexiones.h
conexiones.cpp
MainWindow.cpp
Pero el compilador me da error "no match for operator", que estoy haciendo mal, o si hay una manera mejor de hacerlo, de antemano gracias
En el Formulario:
1
2
3
Dim Consultar as Clase_Consulta()
Consultar.clientes(ListView)
En la Clase:
1
2
3
Public sub clientes(ByVal ListView1 as ListView)
****BLA BLA BLA
Ahi podia hacer la consulta y llenar el control
Estuve investigando por internet la forma de hacer esto en Qt, claro en QTableView y he visto que esta no es la forma correcta de utilizar las clases, seria mejor crear una funcion que te devuelva esos datos y LLENARLO EN FORMULARIO "NO EN LA CLASE", ahora como podria hacer esto? intente hacer esto:
conexiones.h
1
2
3
4
5
6
7
class Conexiones
{
public:
Conexiones();
bool Conectar();
QSqlQueryModel model();
conexiones.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
bool Conexiones::Conectar()
{
int retornar;
QString servername ="****";
QString dbname ="****";
QString LoginN= "****";
QString Passw= "*****";
db = QSqlDatabase::addDatabase("QODBC", "BDSCAFI");
db.setDatabaseName("DRIVER={SQL Server};Server="+servername+";Database="+dbname+";Uid="+LoginN+";Port=1433;Pwd="+Passw+";WSID=");
if(db.open())
{
retornar=true;
db.close();
}
else
{
retornar=false;
}
return retornar;
}
QSqlQueryModel Conexiones:: model(){
if(conectar==true)
{
QSqlQueryModel *modelo = new QSqlQueryModel;
modelo->setQuery("SELECT * FROMClientes", db);
return modelo;
}
}
MainWindow.cpp
1
2
3
4
5
6
void MainWindow:: Conectar_TableView(){
Conexiones *conec = new Conexiones();
ui->tableView->setModel(*conec->model());
}
Pero el compilador me da error "no match for operator", que estoy haciendo mal, o si hay una manera mejor de hacerlo, de antemano gracias
Valora esta pregunta


0