Qt, sql & access
kamy86
Messages postés
42
Statut
Membre
-
kamy86 Messages postés 42 Statut Membre -
kamy86 Messages postés 42 Statut Membre -
Bonjour,
voilà je veux faire un ajout dans une table dans ma base de données access, le code est correct, mais quand j'execute je vais verifier dans ma base de données mais rien n'est ajouté
voilà le.cpp
sachant que je suis allée dans le ODBC et j'ai fait ajouter "Driver do Microsoft Access (*.mdb)"
voilà je veux faire un ajout dans une table dans ma base de données access, le code est correct, mais quand j'execute je vais verifier dans ma base de données mais rien n'est ajouté
voilà le.cpp
#include "FAjoutc.h"
FAjoutc::FAjoutc()
{
setFixedSize(300, 250);
nom = new QLineEdit();
prenom = new QLineEdit();
adresse = new QLineEdit();
telephone = new QLineEdit();
email = new QLineEdit();
QFormLayout *defLayout = new QFormLayout;
defLayout->addRow("&Nom :", nom);
defLayout->addRow("&Prénom :", prenom);
defLayout->addRow("&Adresse :", adresse);
defLayout->addRow("&Numéro de téléphone :", telephone);
defLayout->addRow("e_mail : ",email);
valider = new QPushButton("&Valider", this);
QGroupBox *groupDefinition = new QGroupBox("Ajout d'un client");
groupDefinition->setLayout(defLayout);
groupDefinition->setGeometry(30, 20, 150, 50);
QVBoxLayout *boutonsLayout = new QVBoxLayout;
boutonsLayout->addWidget(groupDefinition);
boutonsLayout->addWidget(valider);
setLayout(boutonsLayout);
QObject::connect( valider, SIGNAL(clicked()), this, SLOT(opajout()) );
connect(valider, SIGNAL(clicked()), this, SLOT(close()));
}
void FAjoutc::opajout()
{
QSqlQuery query;
query.prepare("INSERT INTO employees (Nom, Prenom, Adresse, Num Tel)"
"VALUES(:Nom, :Prenom, :Adresse, :Num Tel)");
query.bindValue(":Nom", nom);
query.bindValue(":Prenom", prenom);
query.bindValue(":Adresse", adresse);
query.bindValue(":Num Tel",telephone );
query.bindValue(":Email",email);
query.exec();
}
sachant que je suis allée dans le ODBC et j'ai fait ajouter "Driver do Microsoft Access (*.mdb)"
A voir également:
- Qt, sql & access
- Logiciel sql - Télécharger - Bases de données
- Qt sdk - Télécharger - Langages
- Access appdata - Guide
- Acer quick access - Forum logiciel systeme
- Désinstaller ACER QUICK ACCESS - Forum Logiciels
10 réponses
Bonjour,
Je ne suis pas un spécialiste Qt, mais dans ton code tu attribues une valeur a Email (par query.bindvalue) mais je ne trouve pas cette colonne dans ton ordre insert (ni dans le nom des colonnes, ni dans VALUES) , peut-être le problème vient-il de là ?
A plus
Je ne suis pas un spécialiste Qt, mais dans ton code tu attribues une valeur a Email (par query.bindvalue) mais je ne trouve pas cette colonne dans ton ordre insert (ni dans le nom des colonnes, ni dans VALUES) , peut-être le problème vient-il de là ?
A plus
je l'ai ajouté mais le problème persiste, toujours aucun changement dans ma base de données, je crois qu'il y a des manipulations specifiques à access que je dois effectuer pour que le lien s'etabli, mais je ne sais pas quoi.
est ce que quelqu'un peut m'aider?
est ce que quelqu'un peut m'aider?
Bonjour,
As-tu déjà vérifié que ta es bien connecté à ta base de données, voici un exemple de code pour se connecter à une base de données Access à partir de Qt
A plus
As-tu déjà vérifié que ta es bien connecté à ta base de données, voici un exemple de code pour se connecter à une base de données Access à partir de Qt
int main( int argc, char *argv[] )
{
QApplication app ( argc, argv, FALSE );
QSqlDatabase *defaultDB = QSqlDatabase::addDatabase(QODBC3);
defaultDB->setDatabaseName( Nom de ta Base );
defaultDB->setUserName( Ton nom de User );
defaultDB->setPassword( Ton mot de passe );
defaultDB->setHostName( Ton nom de serveur );
if ( defaultDB->open() ) {
// L'accès à la base de données est ok, on peut maintenant exécuter des ordres SQL
A plus
voilà mon main.cpp
j'ai mis l'affichage de la fenêtre dans la condition, mais là l'affichage ne s'effectue pas , càd il n'y a pas de liaison avec ma base, qy'est ce que je fais là?
#include <QApplication>
#include "FPrincipale.h"
#include <QtSql>
#include <QDebug>
int main(int argc, char* argv[])
{
QApplication app (argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC3");
db.setHostName("localhost");
db.setDatabaseName("monprojet");
db.setUserName("khamsouch");
db.setPassword("");
bool ok = db.open();
if (ok) {
FPrincipale fenetre;
fenetre.show();
}
QObject::connect( qApp, SIGNAL(lastWindowClosed()), qApp, SLOT(quit()) );
return app.exec();
}
j'ai mis l'affichage de la fenêtre dans la condition, mais là l'affichage ne s'effectue pas , càd il n'y a pas de liaison avec ma base, qy'est ce que je fais là?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Tu peux utiliser la variable QSqlDatabase.lastError pour connaître l'erreur SQL lors de la connexion
A plus
Tu peux utiliser la variable QSqlDatabase.lastError pour connaître l'erreur SQL lors de la connexion
if (ok) {
FPrincipale fenetre;
fenetre.show();
}
else {
qDebug() << QSqlDatabase.lastError();
}
A plus
ça n'affiche rien, là chui allée dans mon panneau de configuration et j'ai ouvert l'ODBC, est ce que tu peut me dire quelles sont les etapes à faire pour etablir une connexion à partir de là?
Bonjour,
N'ayant pas Qt sur ma machine, je peux difficilement t'aider et comme je l'ai déjà dis dans mon premier post, je ne suis pas un spécialiste de Qt. As-tu déjà regardé dans l'aide de Qt ? J'ai aussi remarqué qu'il manque un include dans ton code (c'est peut-être une faute de frappe)
A plus
N'ayant pas Qt sur ma machine, je peux difficilement t'aider et comme je l'ai déjà dis dans mon premier post, je ne suis pas un spécialiste de Qt. As-tu déjà regardé dans l'aide de Qt ? J'ai aussi remarqué qu'il manque un include dans ton code (c'est peut-être une faute de frappe)
#include <QSqlDatabase>
A plus
Bonjour,
Sorry, mais j'ai mal lu ton code, peux-tu encore essayé le suivant stp ?
Merci et a plus
Sorry, mais j'ai mal lu ton code, peux-tu encore essayé le suivant stp ?
if (ok) {
FPrincipale fenetre;
fenetre.show();
}
else {
qDebug() << db.lastError();
} pour voir si tu peux récupérer l'erreur lors de la connexion.
Merci et a plus
merci ce problème est reglé mais je rencontre un autre,j'ai fait la connexion avec ma base dans mon main, et maintenant j'essai de faire les requêtes, mais aucun changement dans ma base.Dans la base de données j'ai mis le numéro de client comme clé primaire et elle s'incrémente automatiquemnt mais je sais pas comment faire avec le code je crois que c'est à cause de ça que ça ne marche pas, je veux que ça s'affiche dans la fenêtre de l'ajout sans que l'utilisateur n'y touche.
comment je fais?
comment je fais?