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

Bases de données Delphi Discussion :

Paradox sans BDE


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut Paradox sans BDE
    Bonjour,

    J'utilise actuellement le BDE pour connecter des tables Paradox à une application Delphi 6. BDE étant déprécié, je cherche un moyen de changer cette connexion. J'aimerais, dans la mesure du possible, garder le système de table Paradox.
    Existe-t-il un moyen de connecter des tables paradox sans passer par le BDE (Ni par ADO)?.

    Je prévois d'utiliser UniDac pour les connexions Delphi-Firebird. Est-il possible de connecter des tables Paradox via UniDac?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Nono23 Voir le message
    Existe-t-il un moyen de connecter des tables paradox sans passer par le BDE (Ni par ADO)?.
    Pourquoi pas par ADO ???

    Citation Envoyé par Nono23 Voir le message
    Je prévois d'utiliser UniDac pour les connexions Delphi-Firebird. Est-il possible de connecter des tables Paradox via UniDac?
    Normalement non,ils sont fait pour utiliser Firebird seulement.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Salut Rayek, merci de ta réponse.

    Citation:
    Envoyé par Nono23
    Existe-t-il un moyen de connecter des tables paradox sans passer par le BDE (Ni par ADO)?.
    Pourquoi pas par ADO ???
    Parce qu'on m'a demandé de trouver une autre solution qu'ADO ( Mais je ne sais pas vraiment pourquoi ) Est-ce que tu sais si d'autres solutions existent?

    Citation:
    Envoyé par Nono23
    Je prévois d'utiliser UniDac pour les connexions Delphi-Firebird. Est-il possible de connecter des tables Paradox via UniDac?
    Normalement non,ils sont fait pour utiliser Firebird seulement.
    Dommage pour ce coup là

    Merci encore

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Regarde Paradox Direct Engine (ActiveX) 1.46, tu devrais pouvoir l'utiliser avec UniDac (lien ODBC via JetEngine)

    Maintenant, c'est un peu tordu !
    Tu devrais plutôt te faire une migration avec DataPump de tes Bases Paradox vers FB !

    Utiliser UniDac pour FireBird, c'est un drôle de choix !
    Tu utilise le Driver InterBase ou ODBC ?

    UniDac c'est bien pour utiliser MySQL, Oracle, SQLite... en même temps !
    C'est justement un projet en cours chez nous d'avoir notre application déployable sur plusieurs DB via UniDac !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    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

  6. #6
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Utiliser UniDac pour FireBird, c'est un drôle de choix !
    Tu utilise le Driver InterBase ou ODBC ?
    Notre application peut tourner sous SQLServer ou Firebird à choix. Et je crois que c'est pour ça que la préférence à été donnée à UniDac (Mais rien n'est encore définitif, pour l'instant, tout est encore en BDE)

    Je vais aller voir du côté de vos liens et verrai ce que j'y trouve.

    Encore une fois merci pour vos informations

    @redoran : j'ai utilisé la méthode décrite sur le site JColibri pour connecter des Paradox via ADO mais si j'essaie d'insérer des données dans ma table Paradox, j'ai l'erreur "l'opération doit utiliser une requête qui peut être mise à jour" Après quelques recherches, j'ai trouvé que ça pouvait venir d'un problème de droits sur le fichier paradox mais le contrôle total est accordé à ma table Paradox. J'ai également pensé que ça pouvait venir du mode d'accès à la requête (Du genre RequestLive chez BDE) Mais je n'ai pas trouvé d'équivalent ADO. Une idée d'une solution?

  7. #7
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    UniDac pour du multi-DB, c'est une bonne pratique, DBExpress permet de le faire aussi mais c'est plus pénible !

    ADO le permettait aussi, mais peut-être un peu plus lent (et les messages d'erreur sont incompréhensibles)

    Avec ADO et Paradox, il faut écrire explicitement ses UPDATE ou INSERT, il faut abandonner le Append\Edit\Post
    Voir la propriété CanModifiy, c'est effectivement l'astuce du RequestLive qui n'est plus disponible
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  8. #8
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Avec ADO et Paradox, il faut écrire explicitement ses UPDATE ou INSERT, il faut abandonner le Append\Edit\Post
    Alors j'ai essayé de faire une deuxième requête INSERT pour ajouter mes données et toujours le même problème, "L'opération doit utiliser une requête qui peut être mise à jour"

    Voici mon code d'ajout :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
         ADOConnection1.BeginTrans;
         ADOQuery2.Close;
         ADOQuery2.SQL.Clear;
         ADOQuery2.SQL.Add('INSERT INTO Test (NOM,PRENOM,ANNEE_NAISSANCE)');
         ADOQuery2.SQL.Add('VALUES ('''+Nom+''','''+Prenom+''','+Annee+')');
         ADOQuery2.ExecSQL;
         ADOConnection1.CommitTrans;
         ADOQuery1.Close;
         ADOQuery1.Open;
    L'erreur apparaît logiquement sur le ExecSQL

    Et la structure de ma table :

    NO_ID : AutoIncrement - Clé primaire
    NOM : Texte
    PRENOM : Texte
    ANNEE_NAISSANCE : Entier

    Est-ce que l'erreur vient de l'autoincrément tout d'un coup?

  9. #9
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Mea Culpa.

    J'ai fait une erreur dans la conception de ma table. mon problème avec ADO est résolu.

    Concernant les autres modes de connexion, je vais étudier vos propositions,

    Merci encore pour votre aide

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Bonjour , je reprend cette discussion qui est terminé depuis longtemps j'ai exactement le même code et j'aurais souhaité savoir comment tu avais procédé pour que l'erreur cesse ?

    Cordialement , Flash11.

  11. #11
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Salut flash11,

    Je ne sais plus exactement, mais je me souviens que c'était vraiment une faute de ma part. quelque chose comme un nom de champ mal écrit ou le nom de ma table mal écrit. un truc tout con.

    Je doute que ça puisse t'aider, J'espère que tu trouveras.

    Nono

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    J'espère que si tu utilises encore ADO tu pourras m'éclairer ...

    J'avais anciennement créé un programme qui tournait sous BDE et j'ai utilisé la combine de jcolibri pour me connecter via ADO à ma table paradox.

    Pourquoi ? Car le deploiement d'une BDE est juste immonde.

    Mais voila mon soucis .

    J'ai transformé mes 2 tquery en ADOQuery1 et ADOQuery2 eux même connecté à un ADOConnection. Malheuresement quand je veux effectuer une action sur mon ADOQuery2 je cite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TPharmaGarde.Button1Click(Sender: TObject);
    begin
        ADOConnection1.BeginTrans;
        ADOQuery2.Close;
        ADOQuery2.SQL.Clear;
        ADOQuery2.SQL.Add('delete * from blanc');
        ADOQuery2.ExecSQL;
        ADOQuery2.SQL.Clear;
        ADOQuery2.SQL.Add('select * from blanc');
        ADOQuery2.ExecSQL;
        ADOConnection1.CommitTrans;
        ADOQuery2.Open;
    end;
    Le prog me sort : Impossible de supprimer dans les tables spécifiées ...
    Au pas à pas le prog s'arrête sur ADOQuery2.ExecSQL;

    Et la je perd la tête
    Merci de m'aider ,Flash11 .

  13. #13
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Hello, je n'utilise malheureusement pas ADO, nous regardons pour changer de système de base de données.

    Par contre, il me semble que la syntaxe du DELETE est

    et non pas


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DELETE * FROM BLANC
    est-ce que ça change quelque chose?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Non ca ne change rien malheuresement

  15. #15
    Membre régulier
    Femme Profil pro
    Inscrit en
    Avril 2007
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 209
    Points : 93
    Points
    93
    Par défaut
    Quelle est ta connectionstring?

    Voici la mienne, peut être que ça peut t'aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;'+
                                             'Data Source=D:\ProjetsTest\Delphi6\UNIDac\TableParadox;'+
                                             'Extended Properties=Paradox 7.x;'+
                                             'Persist Security Info=False';

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Merci d'avoir répondu j'ai résolu mon problème.

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

Discussions similaires

  1. Tables DBase et requêtes sans BDE sous D7 ?
    Par gduo200 dans le forum Bases de données
    Réponses: 3
    Dernier message: 07/09/2007, 14h45
  2. dbase sans BDE ?
    Par wauant dans le forum Bases de données
    Réponses: 5
    Dernier message: 07/07/2006, 09h52
  3. Peut on lire des tables Paradox sans le BDE ?
    Par der§en dans le forum Bases de données
    Réponses: 3
    Dernier message: 02/11/2005, 11h42
  4. Développer une base de données sans BDE dans DELPHI 3 PRO
    Par ndlh721 dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/02/2005, 14h21

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