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

C++Builder Discussion :

Base de données en Acces


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Points : 6
    Points
    6
    Par défaut Base de données en Acces
    Bonjour,
    je bosse sur un projet en borland C++, est je cale dans la partie de base de données
    je voudrai savoir :
    * la balise ( ou la procédure détaillé svp ) pour construire une DB ( sous Acces)
    par exemple une base dont la première ligne c'est stocke, et les champs de de ce stock sont la taille, le poids, et quantité..
    * comment enregistré des données dans cette base.
    * et en fin comment extraire des données de cette base.

    merci.

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Tu peux faire des requêtes SQL du type "INSERT". Maintenant, en ce qui concerne la façon de faire ces requêtes, tout dépend de la technologie que tu utilises (ADO, dbExpress, etc.)

    As-tu déjà une application que tu reprends ou pars-tu de zéro?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 17
    Points : 6
    Points
    6
    Par défaut
    merci pour votre réponse,

    là je dois partir du zéro, c'est a dire, en premier lieux je dois créer une base de données en Access(tables et colonnes), puis j'ai des informations j'ai des informations spécifiques à placer dans cette base, et en dernier lieux extraire des données de cette base. bien évidemment tous ces objectifs, doivent être réaliser a partir un code avec Borland C++ Builder.

    ce que je souhaite faire : comment faire ( les étapes, ou les lignes de code pour creer une DB avec Acces( table et colonnes), remplir cette BD et puis extraire de cette base des infos.

    merci.

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Points : 537
    Points
    537
    Par défaut
    Bonjour; tu dois déja faire une connextion à la base de données créée sous Access (c'est le plus simple) soit en ODBC (pas très performant) sous en mode natif avec le drivers Access (Moteur Jet).

    Ensuite tu peut créer tes tables avec des requètes composées avec des Create Table (à travers un objet connection et Dataset (au autre).

    Mais le plus simple encore c'est de créer complètement ta base te tables et relations sous Access c'est très simple et visuel.

    Ensuite tu peux te lancer dans le développement (Objet Connexion, Dataset, dataSource, Datagrid,... entre autre).

    N'oublis pas que pour des fichier partagé en réseau, les procédures "Stockées" sous accès sont appelable directement à travers un Query, ce qui favorise les performances.

    Perso j'utilise tous les objets Adoxxx

    Regarde les Tutoriels, il y a des examples avec d'autre objets et une autre base mais la technique est la même.

  5. #5
    Responsable Magazine

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Pour plus d'infos tu peut aussi consulter la FAQ.
    Par exemple pour la connexion à Access en ADO : http://cpp.developpez.com/faq/bcb/?p...connexionacess
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  6. #6
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut
    Bonjour,

    Pour resoudre ton problème, il faut commencer par construire la base de données Access (les tables, exp:stock ) sous microsoft Access nqi est livré avec la famille Office.

    La deuxième étape il faut créer une connection vers cette base de donnée sous c++builder en utilisant ADO->ADOConnection (voir la propriété ConnectionString ...), ajout un ADOTable (voir la propriété Connection et choisi la table stock dans la propriété Table), ensuite ajout un Dataset vers le composant ADOTable1. Si tu veux afficher le contenu de la table, utilise un DataGrid.
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    Voici un peu de code pour t'aider:
    1) Créer une connexion vers une base de données

    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
    TADOConnection* OpenConnection() const
    {
     
      // Create the connections
      TADOConnection* ado=new TADOConnection(NULL);
     
      if (ado==NULL) throw EDatabaseError("Impossible de créer la connexion");
     
      // Open the connection
      ado->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Database.mdb;";
      ado->LoginPrompt=false;
      try {
        ado->Open();                            // Try to open the connection
      }
      catch(Exception &err) {
        throw EDatabaseError(err.Message);      // Convert error in EDatabaseError
      }
     
      return ado;
     
    }
    2) Pour exécuter une requête SQL qui ne retourne pas des champs (p.ex. INSERT INTO, CREATE TABLE, DELETE, etc.)

    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
    void ExecuteSQL(TADOConnection *connect,AnsiString SQLCommand) {
     
      if ((connect==NULL)||(connect->Active==false)) return false;
     
      TADOQuery query=new TADOQuery(NULL);
      try {
        query->Connection=connection; 
        query->SQL->Clear();
        query->SQL->Text=SQLCommand;
        query->ExecSQL();
        query->Close();
      } 
      __finally {
        delete query;
      }
     
    }
    Tu peux utiliser ces fonctions comme suit pour créer une table:

    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
    bool CreateTable() {
     
      TADOConnection* connection=OpenConnection();
      if (connection) {
        // Créer la table et ses champs
        ExecuteSQL(connection,
                         " CREATE TABLE tblClient ("
                         "    uniqueKey   INT PRIMARY KEY," 
                         "    name         VARCHAR(50)," 
                         "    description  MEMO" 
                         " );"
                        );
       // Et créer un premier client
       ExecuteSQL(connection,
                        " INSERT INTO tblClient"
                        " (uniqueKey,name,description)"
                        " VALUES (1,\"mon client\",\"Mon tout premier client\");");
      }
      connection->Close();
      delete connection;
    }
    Pour aller lire des données, tu dois faire un version de ExecuteSQL qui appelle "Open" avec une commande SQL de type "SELECT" (au lieu de "ExecSQL"). La query contient les données retournées par Access:

    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
      TADOConnection* connection=OpenConnection();
      if (connection) {
        // Lit les données
        TADOQuery query=new TADOQuery(NULL);
        try {
          query->Connection=connection; 
          query->SQL->Clear();
          query->SQL->Text="SELECT * FROM tblClient;";
          query->Open();
          query->First();
          while (!query->Eof) {
             // Lit les données de l'enregistrement actuel
             int key=query->FieldByName("uniqueKey")->AsInteger;
             AnsiString nom=query->FieldByName("name")->AsString;
             AnsiString description=query->FieldByName("description")->AsString;
             // Utiliser ces données
             ...
             // Continue avec le prochain record
             query->Next();   
          }
        } 
        __finally {
          query->Close();
          delete query;
        }
      }
      connection->Close();
      delete connection;
    }
    En termes de performances, l'ouverture de la connection (OpenConnection) est "très" lente et ne devrait être effectuée qu'une seule fois. Ensuite tu utilises toujours la même connexion dans tous tes appels SQL (Open() ou ExecSQL())

    Bon courage

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    bonjour,
    merci pour votre réponse mais j'ai un problème pour intégrer votre code dans le mien, en effet mon objectifs, c'est de créer un bouton qui permet d'ouvrir la base de données, un autre qui permet de créer des tables ,... bref un ensemble de bouton pour presque toutes les fonctionnalités que vous avez posté.
    mais j'ai un problème d'erreur que j'arrive pas a corriger en particulier des problèmes d'accès à la base de données ( il me présente que l'adresse que j'ai précisé pour la base n'existe pas sachant que la base de données est construite en Accees 2000), pouvez vous me donner quelques explications tel que existe t il un appel a des Bib particulières ou encore a des déclarations (est il possible de me présenter le premier exemple permettant d'accéder à la base ( D:\...\Madb.mdb et de lui ajouter une table concrètement sous une forme correctement implémenté).
    merci pour votre aide.
    J'ai testé le code que je t'avais donné et corrigé les fautes qui le bloquait.

    La création d'une base de données est problématique car il faut importer la composante ADOX (http://delphi.about.com/od/database/l/aa072401a.htm) et créer un objet ADOXCatalog (http://delphi.about.com/od/database/l/aa072401b.htm). Je te propose de faire plus simple: tu crées une base de données Access totalement vide et tu la recopies dans le répertoire de destination. Ensuite, tu utilises le code pour créer les tables, les remplir et les utiliser.

    Voici le code que j'ai testé. Il fonctionne (dans la limite de l'existence d'une base vide avec le nom demandé). Le formulaire contient 2 boutons: "cmdCreate" et "cmdRead" et 4 champs TEdit "FileName", "txtKey", "txtNom", et "txtDescription". J'ai noté avec un "// Edit" les lignes que j'ai corrigées

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    //---------------------------------------------------------------------------
    void __fastcall TForm1::cmdCreateClick(TObject *Sender)
    {
     
      AnsiString name=FileName->Text;
     
      TADOConnection *connection=OpenConnection(name);
      if (connection) {
        // Créer la table et ses champs
        ExecuteSQL(connection,
                         " CREATE TABLE tblClient ("
                         "    uniqueKey    INT PRIMARY KEY,"
                         "    name         VARCHAR(50),"
                         "    description  MEMO"
                         " );"
                        );   // EDIT
       // Et créer un premier client
       ExecuteSQL(connection,
                        " INSERT INTO tblClient"
                        " (uniqueKey,name,description)"
                        " VALUES (1,\"mon client\",\"Mon tout premier client\");"); //EDIT
      }
      connection->Close();
      delete connection;
     
    }
    //---------------------------------------------------------------------------
    TADOConnection* TForm1::OpenConnection(AnsiString name) const
    {
     
      // Create the connections
      TADOConnection* ado=new TADOConnection(NULL);
     
      if (ado==NULL) throw EDatabaseError("Impossible de créer la connexion");
     
      // Open the connection
      ado->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+name+";"; // EDIT
      ado->LoginPrompt=false;
      try {
        ado->Open();                            // Try to open the connection
      }
      catch(Exception &err) {
        throw EDatabaseError(err.Message);      // Convert error in EDatabaseError
      }
     
      return ado;
     
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::cmdReadClick(TObject *Sender)
    {
     
      AnsiString name=FileName->Text;
     
      TADOConnection* connection=OpenConnection(name);
      if (connection) {
        // Lit les données
        TADOQuery *query=new TADOQuery(NULL);
        try {
          query->Connection=connection;  /// Edit
          query->SQL->Clear();
          query->SQL->Text="SELECT * FROM tblClient;";
          query->Open();
          query->First();
          while (!query->Eof) {
             // Lit les données de l'enregistrement actuel
             int key=query->FieldByName("uniqueKey")->AsInteger;        // EDIT
             txtKey->Text=AnsiString(key);
             AnsiString nom=query->FieldByName("name")->AsString;
             txtNom->Text=nom;
             AnsiString description=query->FieldByName("description")->AsString;
             txtDescription->Text=description;
             // Continue avec le prochain record
             query->Next();
          }
        }
        __finally {
          query->Close();
          delete query;
        }
      }
      connection->Close();
      delete connection;
     
    }
    //---------------------------------------------------------------------------
    void TForm1::ExecuteSQL(TADOConnection *connect,AnsiString SQLCommand) {
     
      if ((connect==NULL)||(connect->Connected==false)) return;
     
      TADOQuery *query=new TADOQuery(NULL);
      try {
        query->Connection=connect;             // EDIT
        query->SQL->Clear();
        query->SQL->Text=SQLCommand;
        query->ExecSQL();
        query->Close();
      } 
      __finally {
        delete query;
      }
     
    }

  9. #9
    Membre averti

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Points : 446
    Points
    446
    Par défaut
    merci pour votre réponse mais des problèmes subsistent, voilà ce que j'ai fais, j'ai mis les boutons, les zones de textes et puis j'ai ajouté un composant TADOConnection que j'ai relié avec la base de données vide. puis j'ai copier votre code comme tel:
    .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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
     
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::cmdCreateClick(TObject *Sender)
    {
    AnsiString name=FileName->Text;
     
      TADOConnection *connection=OpenConnection(name);
      if (connection) {
        // Créer la table et ses champs
        ExecuteSQL(connection,
                         " CREATE TABLE tblClient ("
                         "    uniqueKey    INT PRIMARY KEY,"
                         "    name         VARCHAR(50),"
                         "    description  MEMO"
                         " );"
                        );   // EDIT
       // Et créer un premier client
       ExecuteSQL(connection,
                        " INSERT INTO tblClient"
                        " (uniqueKey,name,description)"
                        " VALUES (1,\"mon client\",\"Mon tout premier client\");"); //EDIT
      }
      connection->Close();
      delete connection;
     
    }
    //---------------------------------------------------------------------------
    TADOConnection* TForm1::OpenConnection(AnsiString name) const
    {
     
      // Create the connections
      TADOConnection* ado=new TADOConnection(NULL);
     
      if (ado==NULL) throw EDatabaseError("Impossible de creer la connexion");
     
      // Open the connection
      ado->ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+name+";"; // EDIT
      ado->LoginPrompt=false;
      try {
        ado->Open();                            // Try to open the connection
      }
      catch(Exception &err) {
        throw EDatabaseError(err.Message);      // Convert error in EDatabaseError
      }
     
      return ado;
     
    }
    //------------------------------------------------------------------------
    void __fastcall TForm1::cmdReadClick(TObject *Sender)
    {
     
      AnsiString name=FileName->Text;
     
      TADOConnection* connection=OpenConnection(name);
      if (connection) {
        // Lit les données
        TADOQuery *query=new TADOQuery(NULL);
        try {
          query->Connection=connection;  /// Edit
          query->SQL->Clear();
          query->SQL->Text="SELECT * FROM tblClient;";
          query->Open();
          query->First();
          while (!query->Eof) {
             // Lit les données de l'enregistrement actuel
             int key=query->FieldByName("uniqueKey")->AsInteger;        // EDIT
             txtKey->Text=AnsiString(key);
             AnsiString nom=query->FieldByName("name")->AsString;
             txtNom->Text=nom;
             AnsiString description=query->FieldByName("description")->AsString;
             txtDescription->Text=description;
             // Continue avec le prochain record
             query->Next();
          }
        }
        __finally {
          query->Close();
          delete query;
        }
      }
      connection->Close();
      delete connection;
    }
    //---------------------------------------------------------------------------
     
    void TForm1::ExecuteSQL(TADOConnection *connect,AnsiString SQLCommand) {
     
      if ((connect==NULL)||(connect->Connected==false)) return;
     
      TADOQuery *query=new TADOQuery(NULL);
      try {
        query->Connection=connect;             // EDIT
        query->SQL->Clear();
        query->SQL->Text=SQLCommand;
        query->ExecSQL();
        query->Close();
      } 
      __finally {
        delete query;
      }
     
    }
    //---------------------------------------------------------------------------
    et
    .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
    28
    29
    30
    31
    32
    33
    //---------------------------------------------------------------------------
     
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include <ADODB.hpp>
    #include <DB.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:	// Composants gérés par l'EDI
            TButton *cmdCreate;
            TButton *cmdRead;
            TEdit *FileName;
            TEdit *txtKey;
            TEdit *txtNom;
            TEdit *txtDescription;
            TADOConnection *ADOConnection1;
            void __fastcall cmdCreateClick(TObject *Sender);
            void __fastcall cmdReadClick(TObject *Sender);
            TADOConnection* OpenConnection(AnsiString name) const;
    private:	// Déclarations de l'utilisateur
    public:		// Déclarations de l'utilisateur
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    et il m'affiche cette liste de problèmes

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [C++ Erreur] Unit1.cpp(22): E2268 Appel à une fonction non définie 'OpenConnection'
    [C++ Erreur] Unit1.cpp(22): E2034 Impossible de convertir 'int' en 'TADOConnection *'
    [C++ Erreur] Unit1.cpp(25): E2268 Appel à une fonction non définie 'ExecuteSQL'
    [C++ Erreur] Unit1.cpp(44): E2316 'TForm1::OpenConnection(AnsiString) const' n'est pas un membre de 'TForm1'
    [C++ Erreur] Unit1.cpp(52): E2223 Trop de symboles décimaux
    [C++ Erreur] Unit1.cpp(68): E2089 L'identificateur 'cmdReadClick' ne peut pas avoir un qualificateur type
    [C++ Erreur] Unit1.cpp(123): E2139 ; manquant dans la déclaration
    [C++ Erreur] Unit1.cpp(123): E2134 } manquante dans l'instruction composée
    [C++ Erreur] Unit1.h(1): Impossible d'invoquer l'achèvement de code, du fait d'erreurs dans le code source
    pouvez voir ce que j'ai fait à travers. merci
    A priori, voici les erreurs que je relève:
    1) Tu as défini la fonction OpenConnection dans la section "__published:" du fichier .h. Elle devrait être dans la section "public:"
    2) Tu n'as pas déclaré la fonction ExecuteSQL() (il faut aussi le faire dans le .h)
    3) Tu n'as pas besoin d'ajouter un composant TADOConnection car dans mon exemple il est créé par la fonction OpenConnection. Ce n'est pas une erreur (il n'est simplement pas utilisé) mais c'est inutile.
    4) Tu as mis deux fois le texte "void __fastcall TForm1::cmdReadClick(TObject *Sender) {"

    Fais bien attention à regarder les erreurs que te retourne le compilateur... Elles sont souvent assez explicites pour que tu puisses les corriger toi-même.

    Bon courage

    PS: Je préfère que tu répondes via le forum plutôt que par des messages privés.

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/04/2014, 11h45
  2. Réponses: 1
    Dernier message: 10/01/2014, 09h09
  3. [AC-2007] Utiliser comptes Windows pour accéder a la base de données sur acces
    Par mariancolorado dans le forum Sécurité
    Réponses: 1
    Dernier message: 09/08/2011, 19h25
  4. Combo1 vb6 relié a une base de donnée Microsoft acces
    Par avyrex dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 03/06/2009, 00h42
  5. [EJB] Accès concurrents à la base de données
    Par cameleon2002 dans le forum Java EE
    Réponses: 10
    Dernier message: 23/09/2003, 11h31

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