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 :

Besoin d'aide sur Delphi7/BDE/Oracle


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut Besoin d'aide sur Delphi7/BDE/Oracle
    Bonjour, comme je l'ai déjà dit sur le forum Débutant, je débute réellement de 0 en développement.

    Cela fait deux semaines que je me gave de cours, de tutos, de recherches pour le projet suivant.

    Je dois créer pour mon entreprise un programme permattant d'interroger et de mettre à jour une base de donnée Oracle 7.3 (vi je sais ^^).

    Depuis hier, j'ai enfin réussi à me connecter à la base oracle en question, à envoyer une requête SQL et à afficher le résultat dans un DBGrid.

    Lorsque j'execute le programme, tout se passe bien mais dès que j'essaye d'afficher de nouveau le SQL Builder, il me renvoit systématique le message d'erreur suivant : "Cannot find Database: 'nomdemabase'".

    Je dois avouer que je bloque la dessus car j'aimerai comprendre ce que j'ai pu loupé dans le paramétrage.

    J'ai déjà explorer pas mal de vos liens, je tente de les adapter du mieux possible mais ce n'est pas évident du tout. On ne s'improvise pas développeur du jour au lendemain.

    Je vous copie le code que j'ai actuellement.

    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
    object Form1: TForm1
      Left = 342
      Top = 275
      Width = 870
      Height = 640
      Caption = 'Form1'
      Color = clBtnFace
      Font.Charset = DEFAULT_CHARSET
      Font.Color = clWindowText
      Font.Height = -11
      Font.Name = 'MS Sans Serif'
      Font.Style = []
      OldCreateOrder = False
      PixelsPerInch = 96
      TextHeight = 13
      object MiroirFami: TDBGrid
        Left = 120
        Top = 144
        Width = 609
        Height = 273
        DataSource = ListEmp
        TabOrder = 0
        TitleFont.Charset = DEFAULT_CHARSET
        TitleFont.Color = clWindowText
        TitleFont.Height = -11
        TitleFont.Name = 'MS Sans Serif'
        TitleFont.Style = []
        Columns = <
          item
            Expanded = False
            FieldName = 'LIBELLE'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'NO_MUT'
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'NOM'
            Width = 164
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'PRENOM'
            Width = 220
            Visible = True
          end
          item
            Expanded = False
            FieldName = 'SELECTEUR'
            Visible = True
          end>
      end
      object MutGroup: TSession
        Active = True
        SessionName = 'Mutgroup'
        Left = 88
        Top = 8
      end
      object Mutualix: TDatabase
        AliasName = 'MFFOM'
        DatabaseName = 'MFFOM'
        KeepConnection = False
        LoginPrompt = False
        Params.Strings = (
          'USER NAME=MFFOM'
          'PASSWORD=********')
        SessionName = 'Mutgroup'
        Left = 120
        Top = 8
      end
      object Query1: TQuery
        DatabaseName = 'MFFOM'
        SessionName = 'Mutgroup'
        SQL.Strings = (
          'select ap.libelle,fp.no_mut, fp.selecteur, i.nom, i.prenom'
          'from fami_periode fp, indi i, fami f, adresse_prof ap'
          'where fp.no_mut = f.no_mut'
          'and f.chef_mutu_id = i.id'
          'and f.adrs_prof = ap.id'
          'and fp.selecteur between 20 and 30'
          'and fp.fin is null'
          'order by ap.libelle, fp.selecteur, fp.no_mut')
        Left = 152
        Top = 8
      end
      object ListEmp: TDataSource
        DataSet = Query1
        Left = 88
        Top = 48
      end
    end


    Merci d'avance

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 096
    Par défaut
    Tu as configuré correctement l'alias dans le Configurateur BDE ?

    Sinon ADO serait plus pratique pour utiliser Oracle, la génération de la chaine de connexion étant le point de départ que bcp de monde maîtrise dans la communauté !

    Oracle n'est pas une base d'amateur, même moi en tant que professionnel, je trouve que c'est particulièrement pénible !

    si le DBGrid fonctionne c'est que le Schéma est correctement lié à ton utilisateur et que tu as donné les GRANT nécessaires, ça c'est déjà bien !

    SQL Builder c'est un DesignTime, tu ne dois pas pouvoir l'utiliser si tu es débogage !
    En plus, si c'est celui de D7, c'est juste un outil très peu utile !

    Tu nous donne la DFM, pourquoi pas, tu es débutant, tu utilise massivement l'IDE, c'est logique, as-tu écrit quelques choses dans le PAS (autre que le code généré)
    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

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Tu as configuré correctement l'alias dans le Configurateur BDE ?

    Sinon ADO serait plus pratique pour utiliser Oracle, la génération de la chaine de connexion étant le point de départ que bcp de monde maîtrise dans la communauté !

    Oracle n'est pas une base d'amateur, même moi en tant que professionnel, je trouve que c'est particulièrement pénible !

    si le DBGrid fonctionne c'est que le Schéma est correctement lié à ton utilisateur et que tu as donné les GRANT nécessaires, ça c'est déjà bien !

    SQL Builder c'est un DesignTime, tu ne dois pas pouvoir l'utiliser si tu es débogage !
    En plus, si c'est celui de D7, c'est juste un outil très peu utile !

    Tu nous donne la DFM, pourquoi pas, tu es débutant, tu utilise massivement l'IDE, c'est logique, as-tu écrit quelques choses dans le PAS (autre que le code généré)
    Merci pour ta réponse. Depuis tout à l'heure, je refais encore et encore des essais pour comprendre.

    Pour répondre à ta question, nous utilisons un progiciel qui a été développé sous Delphi, il se connecte à la base oracle via le BDE. Donc l'alias est correctement configuré effectivement.
    Comme nous avons besoin de redévelopper en urgence une application et que nos développeurs n'existent plus, j'ai mis la main à la patte.

    J'ai utilisé exclusivement l'interface graphique. Je n'ai pas rajouté de code encore.
    J'ai réussi hier à extraire les données et à les afficher.
    Il y a juste quelquechose qui me pose soucis.

    Après mes essais, je reste en interrogation sur plusieurs points.

    Pour le paramétrage:
    D'après ce que j'ai compris, l'alias name correspond à l'alias de mon BDE. Dans mon cas celui que notre progiciel utilise. Et cet alias fonctionne.
    Dans mon exemple j'arrive à executer la requête.
    Lorsque je veux de nouveau remodifier la requête, il me demande deux connections, la première se passe bien (petit symbole7 à gauche de Database Login), et il me redemande une deuxième fois de m'identifier (cette fois ci pas de 7 à coté de database login) et cette fois là il me répond qu'il ne trouve pas la base.

    J'ai l'impression qu'il essaye de se connecter sur le DATABASENAME que je renseigne dans mon TDATABASE et qu'il ne le trouve pas alors qu'il n'a aucun problème avec l'alias.

    Pour répondre à ton autre question, je n'ai pas utilisé L'ADO vu qu'à l'origine on utilisait le BDE. Est ce que cela marche avec une base oracle 7.3?

    Peut-on insérer du code PL/SQL dans un programme Delphi?

    En espérant que mes réponses et interrogations soit claire, si besoin je fournirai les autres renseignements à demande.

    Là je vais essaye en ADO pour voir ce que la donne.

    Merci pour tes futures réponses.

    Areop mal au crane

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 096
    Par défaut
    PL/SQL c'est pour les procédures stockés, il faut l'utiliser via TStoredProc
    tu dois pouvoir par SQL faire les ajout des Proc
    Je ne connais que MySQL dans ce domaine, pour ORACLE, il doit exister, je l'espère les équivalent de CREATE PROCEDURE

    Faudrait donner un nom différent pour l'alias que celui de la DB, cela peut porter à confusion !
    Tu as créés toi même les TDataSource et TQuery ? ou tu as copié les objets depuis le projet originel ? car user, dbname et alias tous pareil ... c'est pratique (j'ai eu à migrer une appli BDE\paradox vers ADO\Oracle, et le dev a choisi de faire pareil, ce qui est pas toujours pratique de savoir qui sert à quoi)
    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 du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 8
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    PL/SQL c'est pour les procédures stockés, il faut l'utiliser via TStoredProc
    tu dois pouvoir par SQL faire les ajout des Proc
    Je ne connais que MySQL dans ce domaine, pour ORACLE, il doit exister, je l'espère les équivalent de CREATE PROCEDURE

    Faudrait donner un nom différent pour l'alias que celui de la DB, cela peut porter à confusion !
    Tu as créés toi même les TDataSource et TQuery ? ou tu as copié les objets depuis le projet originel ? car user, dbname et alias tous pareil ... c'est pratique (j'ai eu à migrer une appli BDE\paradox vers ADO\Oracle, et le dev a choisi de faire pareil, ce qui est pas toujours pratique de savoir qui sert à quoi)
    Le TDataSource et le TQuery, je les ai crée après avoir compris l'imbrication jusqu'au TDBGRID.

    J'ai essayé de modifier le DatabaseName. En indiquant le login/mdp, en mettant login à false et connected à true sur le Tdatabase, cela fonctionne bien.
    Dès que j'essaye de lancer ce SQL Builder, il me redemande de nouveau un login/mdp sur le nouveau Databasename et me renvoie un message d'erreur me disant qu'il ne trouve pas la base de donnée en question.

    Est ce qu'il y a une logique particulière qui m'échappe dans ma manière de paramétrer le Tdatabase et le Tquery?

    Merci pour l'info concernant le PL/SQL , je m'en servirai lorsque j'aurai solutionné ce problème. Comment ai-je réussi une fois et être incapable de le modifier?

    Bon en cherchant, je viens de trouver que je peux modifier le Tquery par le champ SQL de l'objet inspector et çà marche bien comme cela. Est ce que le SQL Builder est buggé?

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 096
    Par défaut
    Je ne sais pas, je ne l'ai JAMAIS utilisé, je n'utilise que les "..." du TStrings SQL !
    Et Souvent, mon SQL est dans le Code (partiellement généré par des Objets Business)

    En général, je ne connecte jamais Delphi à la DB, j'utilise des outils Externe, comme TOAD pour Oracle, SQL Browser pour MySQL, ...
    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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/06/2009, 22h25
  2. [D7] Besoin d'aide sur un PChar
    Par bobby-b dans le forum Langage
    Réponses: 6
    Dernier message: 30/06/2004, 16h42
  3. Filemaker ... besoin d'aide sur les Plugin
    Par joange dans le forum Autres SGBD
    Réponses: 3
    Dernier message: 22/04/2004, 10h16
  4. [intermedia] besoin d'aide sur script PL/SQL
    Par SteelBox dans le forum PL/SQL
    Réponses: 8
    Dernier message: 05/01/2004, 19h59
  5. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19

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