THOUSANDS OF FREE BLOGGER TEMPLATES

segunda-feira, 25 de maio de 2009

Introdução aos Sistemas de Informação - BASE DE DADOS EM QT

No modulo 12 uma nova componente foi introduzida, aprendemos a criar bases de dados em QT.
Antes da programação em si, começamos por criar uma pequena apresentação onde é explicado o básico sobre bases de dados, mySql, etc. que pode ser baixado no link seguinte:

http://www.4shared.com/file/107613229/b7dbe1d6/psisql.html


Agora a programação: No programa que eu fiz criei uma ligação a base de dados situada no phpmyadmin em qt mas antes de explicar umas imagens sobre o programa:
Free Image Hosting at www.ImageShack.us

Free Image Hosting at www.ImageShack.us




Nas imagens pode-se ver um semáforo, este semáforo fica vermelho quando não foi possível a ligação a base de dados e verde quando e possível, é no código que podemos por a nossa palavra passe, nome, etc, como se pode ver no seguinte extracto de código:
 myHostName="xxx.xxx.x.xxx";

myDatabase="graca";
myUserName="graca";
myPassword="xxxxxxxxxx";



bool projectMovie::ligar_bd(){
if((db_status = createConnection(myHostName, myDatabase, myUserName, myPassword))){
createDatabase();
ui->label_2->setPixmap(QPixmap(":/images/green"));
setMenuStatus02();

}else{
ui->label_2->setPixmap(QPixmap(":/images/red"));
setMenuStatusFAIL();
}
return db_status;

}


Depois criamos a tabela para isso temos que fazer um QtableView e digitar os dados como se pode ver no seguinte:
void projectMovie::createDatabase(){

QSqlQuery query;
query.exec("drop table movies");
query.exec("create table movies ("
"name varchar(20) primary key, "
"rate varchar(20), "
"idade_permitida varchar(20), "
"bilhete varchar(20), "
"sala int, "
"disponibilidade varchar(20))"
);
}



void projectMovie::createTestData(){
QSqlQuery query;
query.exec("insert into movies values('fast & furious', '*****', '+16', '5e', 5 ,'100%')");
query.exec("insert into movies values('Mr Bean', '****', '+6', '5e', 3, '20%')");
query.exec("insert into movies values('B13 2', '*****', '+18', '10e(vip room)', 10 ,'10%')");
query.exec("insert into movies values('Tiago Costa', '*****', '+18', '10e', 1 ,'0%')");

}

por fim existem vários botões, cada um e um dialog onde podemos ver a tabela, inserir dados, eliminar dados e procurar.
No QT o resultado final é este:

Free Image Hosting at www.ImageShack.us




0 comentários: