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

  1. ###raw>post.musername###
    Rédacteur
    Comment ouvrir une base vide avec OleADO sans Access
    A la suite du Post de Fbartolo sur le compactage d'une base de donnee sans Access, j'ai essaye de creer une base de donnee sans Access
    le code:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    // ne pas oublier d'inclure #include <comobj.hpp>
    Variant vADO;
    AnsiString Filename = "C:\\Documents and Settings\\blondelle\\Mes documents\\MySQL\\UtilisationBDE\\fichiers\\maBdd\\maBdd6.mdb";
    AnsiString provider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +Filename+";";
    vADO = Variant::CreateObject("ADOX.Catalog");
    vADO.OleFunction("create", provider.c_str());
    vADO = Unassigned;

    Attention je ne gere pas l'exception si la base existe deja.
      0  0

  2. #2
    Membre confirmé
    Trop fort Bravo.
    Une petite FAQ sur le sujet serait pas mal

    Si tu trouves comment copier "simplement" une table d'une base vers une autre je suis preneur.
    Car j'ai vraiment galéré pour créer une requête qui fait ça, champs par champs avec les propriétés des champs qui sont à traduite car pas SQL Ansi...

    perso je n'ai rien trouvé de précis dans ces sujets sur le Net.

  3. #3
    Rédacteur

    Fbartolo a ecrit:

    Si tu trouves comment copier "simplement" une table d'une base vers une autre je suis preneur.
    Car j'ai vraiment galéré pour créer une requête qui fait ça, champs par champs avec les propriétés des champs qui sont à traduite car pas SQL Ansi...
    Si tu a un bout de code on peut essayer sur un autre poste
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
    • N'oubliez pas de consulter la FAQ, la recherche sur le Forum.
    • N'oubliez pas que l'aide BCB existe, elle s'affiche sous simple pression de la touche F1.
    • N'oubliez pas de mettre : Bouton en bas de la page ou menu Outils de la discussion -> Mettre Résolu.
    • Mes Tutos http://jp-blondelle.developpez.com/

  4. ###raw>post.musername###
    Rédacteur
    J'ai fait un essai pour gerer l'exception si le fichier existe deja j'affiche bien la MessageBox mais je n'arrive pas a eviter l'erreur.
    le code:
    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
     
    // ne pas oublier d'inclure #include <comobj.hpp>
    Variant vADO;
    AnsiString Filename = "C:\\Documents and Settings\\blondelle\\Mes documents\\MySQL\\UtilisationBDE\\fichiers\\maBdd\\maBdd6.mdb";
    AnsiString provider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +Filename+";";
            try
    {
    vADO = Variant::CreateObject("ADOX.Catalog");
    vADO.OleFunction("create", provider.c_str());
    }
            catch(Exception &exception)
    {
    Application->MessageBox("Impossible de creer la base, peut etre qu'elle existe deja?", "ERREUR", MB_OK);
    }
    // on termine
    vADO = Unassigned;
      0  0

  5. #5
    Membre confirmé
    Il n'y a plus qu'à tester la présence du fichier en amont.

  6. #6
    Rédacteur

    Oui mais je ne vois pas comment eviter le message d'erreur a la sortie du "Catch()"?
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
    • N'oubliez pas de consulter la FAQ, la recherche sur le Forum.
    • N'oubliez pas que l'aide BCB existe, elle s'affiche sous simple pression de la touche F1.
    • N'oubliez pas de mettre : Bouton en bas de la page ou menu Outils de la discussion -> Mettre Résolu.
    • Mes Tutos http://jp-blondelle.developpez.com/

  7. #7
    Rédacteur

    La je ne vois pas comment eviter le message d'erreur Ole
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
    • N'oubliez pas de consulter la FAQ, la recherche sur le Forum.
    • N'oubliez pas que l'aide BCB existe, elle s'affiche sous simple pression de la touche F1.
    • N'oubliez pas de mettre : Bouton en bas de la page ou menu Outils de la discussion -> Mettre Résolu.
    • Mes Tutos http://jp-blondelle.developpez.com/

  8. #8
    Membre confirmé
    En mode debug (sous IDE) les messages sont toujours visible.

    Testes avec Catch(...) pour voir si cela prend en mode run (en lançant l'exe)

  9. #9
    Membre confirmé
    Après tests, Ton code fonctionne bien, sauf que dans l'EDI tu as le message du Débogueur, c'est normal

  10. #10
    Rédacteur

    Tu a raison Fbartolo je cherche une erreur la ou il n'y en a pas
    je met un petit resolut
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
    • N'oubliez pas de consulter la FAQ, la recherche sur le Forum.
    • N'oubliez pas que l'aide BCB existe, elle s'affiche sous simple pression de la touche F1.
    • N'oubliez pas de mettre : Bouton en bas de la page ou menu Outils de la discussion -> Mettre Résolu.
    • Mes Tutos http://jp-blondelle.developpez.com/

  11. #11
    Membre actif
    Je viens de tester...nikel c'est la meilleure methode pour BCB!!!!
    bravo



    ++
    mcercle facturation - Logiciel de facturation Win/Mac/Linux

  12. #12
    Membre actif
    Par contre pour eviter le message sympa du "peut etre qu'elle existe deja?" :d

    plutot faire le test avant:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	 if (FileExists(Filename.c_str()))
    		{
    		MessageBox(Handle,"Ce fichier existe déja!" ,"ATTENTION",MB_OK|MB_ICONWARNING ) ;
    		vADO = Unassigned;
    		return;
    		}


    ++
    mcercle facturation - Logiciel de facturation Win/Mac/Linux

  13. #13
    Rédacteur

    Merci pour ta reponse virtuA
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
    • N'oubliez pas de consulter la FAQ, la recherche sur le Forum.
    • N'oubliez pas que l'aide BCB existe, elle s'affiche sous simple pression de la touche F1.
    • N'oubliez pas de mettre : Bouton en bas de la page ou menu Outils de la discussion -> Mettre Résolu.
    • Mes Tutos http://jp-blondelle.developpez.com/

###raw>template_hook.ano_emploi###