Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 42 odgovora
  • 11.506 pregleda

Najnovija ↓

Re: C++/QT i mysql opet 07.02.2009. u 09:02 · pre 215 meseci #21
Šta vraća db.open() - true ili false? (Pošto si već ranije postavio username i password, možeš da koristiš open() bez argumenata.)
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Re: C++/QT i mysql opet 07.02.2009. u 10:19 · pre 215 meseci #22
Code:

void MainWindow::spremanje()
{


QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("proba");
db.setUserName("root");
db.setPassword("123");

bool ok=db.open("root","123");
if(ok)
{
QSqlQuery query(db);
query.prepare("insert into druga(id,id1,a) values(:id,:id1,:a)");
query.bindValue(":id","3424");
query.bindValue(":id1","343");
query.bindValue(":a","agdfg");
query.exec();


}
}




ne prolazi otvaranje.
Re: C++/QT i mysql opet 07.02.2009. u 11:27 · pre 215 meseci #23
Šta podrazumevaš pod root korisnikom, tj. da li je root definisan na MySql-u ili pod Linuxom/Windowsom?
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Re: C++/QT i mysql opet 07.02.2009. u 11:39 · pre 215 meseci #24
baza je na windowsima, na localhostu.
root je user baze., a 123 password.
QT i QT creator su također na toj mašini.

linuxa imam na drugoj kanti.
Re: C++/QT i mysql opet 07.02.2009. u 13:55 · pre 215 meseci #25
Ako ne možeš da se uloguješ iz Qt-a, možeš li iz konzole da se uloguješ ali kada NISI root, dakle prolazi li nešto poput
Code:

mysql -hlocalhost -uroot -p123 proba

Takodje, kad staviš
Code:

cout << db.databaseName().toStdString() << ", " << db.driverName().toStdString() << endl;

odmah posle setovanja parametara, ispisuje li dobre parametre?
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Re: C++/QT i mysql opet 07.02.2009. u 14:48 · pre 215 meseci #26
Code:


void MainWindow::spremanje()
{


QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("proba");
db.setUserName("root");
db.setPassword("123");

bool ok=db.open("root","123");

if(ok)
{
QSqlQuery query(db);
QMessageBox::critical(0,QObject::tr("aa"),db.databaseName().toAscii());
query.prepare("insert into druga(ID,ID1,a) values(:id,:id1,:a)");

query.bindValue(":id","3424");
query.bindValue(":id1","343");
query.bindValue(":a","agdfg");
query.exec();

}
}




ovo je code, radi, ja budala, druga tablica mi je bila vezana relacijom na prvu.ta druga je bila detail.

sve radi.na ovoj bazi sam nešto testirao, pa zaboravio na relaciju.

hvala svima.
Re: C++/QT i mysql opet 08.02.2009. u 22:51 · pre 215 meseci #27
sad imam dalje pitanja.
izvršim query, recimo da imam select.

u dizajneru na formu stavi tableView.

kako povezati query sa tablemodel i tableview.


tj. da podatke iz query-a dodijelim tablemodel-u?
Re: C++/QT i mysql opet 09.02.2009. u 06:37 · pre 215 meseci #28
Ako u bazi imaš npr. tabelu emails(personId INT, address VARCHAR(32)) onda je možeš pročitati sa
Code:

QSqlTableModel* emailsModel = new QSqlTableModel(0, db);
emailsModel->setTable("emails");
emailsModel->setHeaderData(1, Qt::Horizontal, "Address");// postavlja ime kolone koje se prikazuje nezavisno od onog u bazi
emailsModel->select();

a prikazati sa
Code:

QTableView* emailsView = new QTableView;
emailsView->setModel(emailsModel);
emailsView->show();

Dok se budeš igrao sa čitanjem i pisanjem po bazi, izbegavaj NULL vrednosti u poljima. Trenutno pokušavam da nađem rešenje za brisanje redova koji imaju u nekoj koloni NULL jer primeri koji se koriste u dokumentaciji i knjigama ne rade!?
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Re: C++/QT i mysql opet 09.02.2009. u 11:43 · pre 215 meseci #29
Citat:
karas: Ako u bazi imaš npr. tabelu emails(personId INT, address VARCHAR(32)) onda je možeš pročitati sa
Code:

QSqlTableModel* emailsModel = new QSqlTableModel(0, db);
emailsModel->setTable("emails");
emailsModel->setHeaderData(1, Qt::Horizontal, "Address");// postavlja ime kolone koje se prikazuje nezavisno od onog u bazi
emailsModel->select();

a prikazati sa
Code:

QTableView* emailsView = new QTableView;
emailsView->setModel(emailsModel);
emailsView->show();

Dok se budeš igrao sa čitanjem i pisanjem po bazi, izbegavaj NULL vrednosti u poljima. Trenutno pokušavam da nađem rešenje za brisanje redova koji imaju u nekoj koloni NULL jer primeri koji se koriste u dokumentaciji i knjigama ne rade!?


a dali postoji mogučnost da prikažem query u table view-u?

da ne koristim qsqltablemodel.
Re: C++/QT i mysql opet 09.02.2009. u 12:34 · pre 215 meseci #30
radi usporedbe. u QT-u, prikaz od milijun redova izvršava se u 3-4 sekunde, dok kod .net-a treba 30 s i još sve zablokira.
Re: C++/QT i mysql opet 09.02.2009. u 12:40 · pre 215 meseci #31
Ako te ne mrzi, probaj
Code:

emailsModel->removeRow(0)

prvo na recordu koji nema NULL vrednost ni u jednoj koloni a onda isto to na recordu koji u jednoj koloni ima NULL vrednost. Da li je obrisao red iz tabele koji ima NULL?
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Re: C++/QT i mysql opet 09.02.2009. u 13:04 · pre 215 meseci #32
Citat:
karas: Ako te ne mrzi, probaj
Code:

emailsModel->removeRow(0)

prvo na recordu koji nema NULL vrednost ni u jednoj koloni a onda isto to na recordu koji u jednoj koloni ima NULL vrednost. Da li je obrisao red iz tabele koji ima NULL?


meni null vrijednosti prikazuje u tableview.

a šta ako hoću sa tablemodel prirodno spojiti dvije tablice ?

f
Re: C++/QT i mysql opet 09.02.2009. u 13:18 · pre 215 meseci #33
uspio sam.

Code:

void MainWindow::spremanje()

{


QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("proba");
db.setUserName("root");
db.setPassword("123");

bool ok=db.open("root","123");
if(ok)
{

QSqlQueryModel *a=new QSqlQueryModel();
a->setQuery("select * from prva,druga where prva.id=druga.id1");


ui.tableView->setModel(a);
ui.tableView->show();



}
}

Re: C++/QT i mysql opet 09.02.2009. u 13:19 · pre 215 meseci #34
A da li ih brise iz tabele u bazi?
S obzirom da u dokumentaciji kaze
Citat:

The QSqlTableModel class provides an editable data model for a single database table

pretpostavljam da nije predvidjena za JOIN-ove.
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Re: C++/QT i mysql opet 09.02.2009. u 13:21 · pre 215 meseci #35
Prikazao, a editovanje?
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Re: C++/QT i mysql opet 09.02.2009. u 13:34 · pre 215 meseci #36
Citat:
karas: Prikazao, a editovanje?


ne znam.

sad pitanje, a sta ako umjesto QSqlQueryModel želim koristiti QSqlQuery?

i rezultat prikazati u tableview?

qsqlquery mi treba zbog procedura, mada čujem od ljudi da procedure nisu baš potrebne, da se svi query-i mogu stavit u jednu klasu.

a drugo ako nam treba neki zbroj računa kroz godinu ili nešto slično, a upit bi trajao dugo, mislim da je bolje zbrajat u hodu.
Re: C++/QT i mysql opet 09.02.2009. u 13:40 · pre 215 meseci #37
pozivanje procedure.odlično radi.a ako trebaju i parametri, samo se navedu u zagradi kod imena procedure.
samo još moram probati sa out parametrima.

Code:

void MainWindow::spremanje()

{


QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("proba");
db.setUserName("root");
db.setPassword("123");

bool ok=db.open("root","123");
if(ok)
{

QSqlQueryModel *a=new QSqlQueryModel();
a->setQuery("call procedura()");


ui.tableView->setModel(a);
ui.tableView->show();



}
}

Re: C++/QT i mysql opet 09.02.2009. u 13:57 · pre 215 meseci #38
dokumentacija je dobra ali nije za početnike.
primjeri su dobri ali su pisani na razini za profesionalce, nema jednostavnijih primjera.
zbog tako loše dokumentacije za početnike mi moramo otkrivati toplu vodu no forumu.
Re: C++/QT i mysql opet 10.02.2009. u 11:31 · pre 215 meseci #39
Code:

void MainWindow::spremanje()

{


QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setPort(3306);
db.setDatabaseName("proba");
db.setUserName("root");
db.setPassword("123");

bool ok=db.open("root","123");
if(ok)
{
QSqlQuery query;

query.exec("call marko(1)");


QSqlQueryModel *a=new QSqlQueryModel();
a->setQuery(query);


ui.tableView->setModel(a);
ui.tableView->show();
db.close();


}
}




kako koristiti bind value za poziv procedure?
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme