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

Composants VCL Delphi Discussion :

Mot de passe et chaine de connexion ADO


Sujet :

Composants VCL Delphi

  1. #1
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut Mot de passe et chaine de connexion ADO
    Bonjour ; dans mon projet [d7 + access 2003], la bdd est protégé avec un mot de passe , la chaine de connexion est comme suite :
    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
    procedure TForm1.FormCreate(Sender: TObject);
    var
      cheminBD, chaineCnx : string;
    begin
    cheminBD := 'C:\Documents and Settings\a\Bureau\essai comp\gest.mdb';
    chaineCnx:= 'Provider=Microsoft.Jet.OLEDB.4.0;' +
                'User ID=Admin;' +
                'Data Source=' + cheminBD + ';' +
                'Mode=Share Deny None;Extended Properties="";' +
                'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";' +
                'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;' +
                'Jet OLEDB:Database Locking Mode=1;' +
                'Jet OLEDB:Global Partial Bulk Ops=2;' +
                'Jet OLEDB:Global Bulk Transactions=1;' +
                'Jet OLEDB:New Database Password="";' +
                'Jet OLEDB:Create System Database=False;' +
                'Jet OLEDB:Encrypt Database=False;' +
                'Jet OLEDB:Don''t Copy Locale on Compact=False;' +
                'Jet OLEDB:Compact Without Replica Repair=False;' +
                'Jet OLEDB:SFP=False';
    ADOConnection1.ConnectionString := chaineCnx ;
    end;
    le code compactage de la bdd est comme suit:
    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
    function CompactAccessDB(db,mdp : string): Boolean; {DB = path complet de la base Access, MdP = password de la DB }
    // Ajouter ComObj dans les Uses
    var
      v: OLEvariant;
    begin
      Result := False;
      try
        v := CreateOLEObject('JRO.JetEngine');
        try
          if CopyFile(PAnsiChar(db),PAnsiChar(db+'.bak'),False) then //backup de la base
          begin
            V.CompactDatabase('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+db+';Jet OLEDB:Database Password='+mdp,
             'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+db+'comp'+';Jet OLEDB:Database Password='+mdp); //compactage
            DeleteFile(db);// suppression de la base d'origin
            RenameFile(db+'comp',db); // mise en place de la base compactée
            Result := True;
          end;
        finally
          V := Unassigned;
          showmessage('Base de données introuvable');
     
        end;
        except
       showmessage('Compactage non réussi');
       Result := False;
      end;
    end;
    appel de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.compactageClick(Sender: TObject);
    begin
     CompactAccessDB(ExtractFilepath(application.ExeName)+'gest.mdb', '');
     showmessage('compactage réussi');
     
    end;
    mon problème est le suivant :
    j'ai le message base de données introuvable ;
    ensuite j'ai le message compactage réussi ;
    et la bdd est compactée ;
    sachant que ma bdd est protégé par un mot de passe...;
    là j'ai pas trouvé ou est l'erreur !!!!!

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Bonjour; [d7 + access 2003] ma base est protégé par un mot de passe via access ( ouverture en mode exclusif et protection de la bdd):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TForm1.compactageClick(Sender: TObject);
    begin
     CompactAccessDB(ExtractFilepath(application.ExeName)+'gest.mdb', '');
     // j'ai enlevé cet fragment "showmessage('compactage réussi');" ce n'est pas sa place normalement il doit être dans la fonction
    end;
    j'ai constaté que la maintenance de la BDD ( compactage - restauration - suavegard) n'a pas besoin de mot de passe; sachant bien que ma Bdd est protégée est le code de connexion ne contient pas de mot de passe.
    aussi avec la même fonction quand j'exécute le compactage j'ai toujour le message base de données introuvable et quand je consulte la bdd dans son répertoire je constate que la bdd est compactée!!!!!
    je crois que le problème est dans l'utilisation de try-except et finally , alors j'ai pas pus restructuré le code !!!!
    aussi je comprend pas l'utilité de ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    .....................
    except
       showmessage('Compactage non réussi');
       Result := False;
      end;
    j'ai enlevé la bdd , aussi essayé plusieurs possibilités mais ce code n'a pas été utilisé dans la lecture du code!!!!
    merci pour les explications

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    396
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 396
    Points : 640
    Points
    640
    Par défaut
    tu passeras toujours dans ton bloc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    finally
          V := Unassigned;
          showmessage('Base de données introuvable');
    end;
    c'est justement sa fonction, si tu veux n'y aller que s'il ne trouve pas le fichier tu remplaces finally par except

  4. #4
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Re ; oui je lè testé sa marche, et j'ai aussi le premier try
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    aussi je comprend pas l''utilité de ce bout de code :
    Code :
     
    .....................
    except
       showmessage('Compactage non réussi');
       Result := False;
      end;
    alors comment restructuré tous ça....

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/03/2015, 17h02
  2. Réponses: 4
    Dernier message: 28/07/2011, 15h16
  3. Chaine de connexion ADO
    Par liazidf dans le forum Bases de données
    Réponses: 6
    Dernier message: 09/06/2008, 13h21
  4. Chaine de connexion ADO pour MySQL
    Par [DreaMs] dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2006, 11h43
  5. Chaine de connexion ADO
    Par stef_445 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/02/2006, 15h07

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