IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces de programmation Oracle Discussion :

OCILIB et Qt


Sujet :

Interfaces de programmation Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 8
    Points
    8
    Par défaut OCILIB et Qt
    Bonjour,
    Je suis actuellement entrain d'ajouter la lib OCILIB à Qt, afin d’atteindre une base de données sous oracle. Je me suis inspiré du tuto suivant : http://vicenzo.developpez.com/tutoriels/c/ocilib/

    .pro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    QT       += core gui
     
    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
     
    LIBS += C:/ocilib/lib32/ociliba.lib
     
    INCLUDEPATH = C:/ocilib/include
     
    DEFINES += OCI_API=__sdtcall
     
    TARGET = BDD
    TEMPLATE = app
     
     
    SOURCES += main.cpp\
            commu.cpp
     
    HEADERS  += commu.h
     
    FORMS    += commu.ui
    mon .cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    36
    37
    38
    39
     
    Commu::Commu(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::Commu)
    {
        ui->setupUi(this);
    }
     
    Commu::~Commu()
    {
        delete ui;
    }
     
    void Commu::on_btnFusion_clicked()
    {
        OCI_Connection* cn;
        OCI_Statement* st;
        OCI_Resultset* rs;
        if(!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))
            exit(88);
     
        QMessageBox::information(this, "info", "oh yeah");
     
        cn = OCI_ConnectionCreate("bd", "user", "pwd", OCI_SESSION_DEFAULT);
     
           if (cn != NULL)
           {
              printf(OCI_GetVersionServer(cn));
              printf("Server major version : %i\n", OCI_GetServerMajorVersion(cn));
              printf("Server minor version : %i\n", OCI_GetServerMinorVersion(cn));
              printf("Server revision version : %i\n", OCI_GetServerRevisionVersion(cn));
              printf("Connection version : %i\n", OCI_GetVersionConnection(cn));
     
              OCI_ConnectionFree(cn);
           }
     
     
        OCI_Cleanup();
    }
    mon .h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    #include <QMainWindow>
    #include <QMessageBox>
    #include <cstdlib>
    #include <iostream>
    #include "ocilib.h"
     
    namespace Ui {
    class Commu;
    }
     
    class Commu : public QMainWindow
    {
        Q_OBJECT
     
    public:
        explicit Commu(QWidget *parent = 0);
        ~Commu();
     
    private slots:
        void on_btnFusion_clicked();
     
    private:
        Ui::Commu *ui;
    };
     
    #endif // COMMU_H
    Et en erreur, j'ai :

    c:\ocilib\include/ocilib.h:2067:28: error: expected initializer before 'OCI_Initialize'
    c:\ocilib\include/ocilib.h:2092:28: error: expected initializer before 'OCI_Cleanup'
    c:\ocilib\include/ocilib.h:2109:33: error: expected initializer before 'OCI_GetOCICompileVersion'
    c:\ocilib\include/ocilib.h:2126:33: error: expected initializer before 'OCI_GetOCIRuntimeVersion'
    c:\ocilib\include/ocilib.h:2142:33: error: expected initializer before 'OCI_GetImportMode'
    c:\ocilib\include/ocilib.h:2158:33: error: expected initializer before 'OCI_GetCharsetMetaData'
    c:\ocilib\include/ocilib.h:2174:33: error: expected initializer before 'OCI_GetCharsetUserData'
    ...
    et ainsi de suite pour toute les fonctions de la lib. Je suis complétement bloqué, si quelqu’un sait comment résoudre ce problème je suis preneur!

    merci d'avance.
    Washco

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Points : 5 307
    Points
    5 307
    Par défaut
    Salut,


    la définition de OCI_API est erronée : ce n'est pas __sdtcall mais __stdcall
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [OCILIB] Problème connection
    Par LeBelge63 dans le forum Interfaces de programmation
    Réponses: 11
    Dernier message: 29/05/2008, 11h23
  2. [OCILIB] Adresse IP du serveur base de données
    Par Abdelkaoui dans le forum Interfaces de programmation
    Réponses: 29
    Dernier message: 07/03/2008, 09h29
  3. Développement d'une extension php liée à ocilib
    Par grincheux01 dans le forum Visual C++
    Réponses: 4
    Dernier message: 22/02/2008, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo