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 :

Probleme Ibquery lors de la création d’une BDD interbase


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Probleme Ibquery lors de la création d’une BDD interbase
    salut
    Voila j'ai essayé de créer dynamiquement une BDD interbase ; voici 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
    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
    procedure TFNvllBDD.JvTransparentButton21Click(Sender: TObject);
    begin
    if JvEdit1.Text <> '' then
       begin
          if RadioBtn1.Checked then        // Création BDD vierge
            begin
               with DMgle do
               begin
                    IBDBgle.DatabaseName := GetCurrentDir+'\'+JvEdit1.Text+'.GDB';
                    IBDBgle.SQLDialect := 3;
                    IBDBgle.Params.Clear;
                    IBDBgle.Params.Add('USER "SYSDBA"');
                    IBDBgle.Params.Add('PASSWORD "masterkey"');
                    IBDBgle.Params.Add('PAGE_SIZE 4096');
                    IBDBgle.CreateDatabase;
                    IBDBgle.Connected := true;
                    IBTransGle.Active := true;
                    IBQgle.SQL.Clear;
                    IBQgle.SQL.Add('CREATE TABLE T_CLIENT(CODE_CLIENT  CHAR(5) NOT NULL,'
                                         +'TITRE        CHAR(8),'
                                         +'NOM_PRENOM   CHAR(64) NOT NULL,'
                                         +'TYPE_CLIENT  CHAR(15) NOT NULL,'
                                         +'ADRESSE      VARCHAR(64) NOT NULL,'
                                         +'COMMUNE      VARCHAR(32) NOT NULL,'
                                         +'WILAYA       VARCHAR(32) NOT NULL,'
                                         +'CODE_POSTAL  CHAR(5) NOT NULL,'
                                         +'TELEPHONE    CHAR(20) NOT NULL,'
                                         +'EMAIL        VARCHAR(100) NOT NULL,'
                                         +'ETAT         CHAR(7) NOT NULL);') ;
                     IBQgle.Close;
                     IBQgle.ExecSQL;
                     IBTransGle.Commit;
                                 // jusqu'ici ça marche  le fichier *****.GDB créé 
                      IBQgle.SQL.Clear;
                      IBQgle.SQL.Add('select * from T_CLIENT');
                      IBQgle.ExecSQL;
                      IBQgle.Active := true;
                 end; // end DMgle do
            end; // end RadioBtn1
     
          if  RadioBtn2.Checked then       // Création d'une BDD à partir d'une BDD existante
            begin
                // autre traitement 
            end;  // end RadioBtn2
       end  //end JvEdit <> ''
     else
     MessageDlg('Specifiez d''abord le Nom de la BDD !!!', mtError, [mbOk],0);
    end;
    j'ai l'erreur suivanteNom : Sans titre.png
Affichages : 123
Taille : 31,6 Ko
    erreur après l’exécution Nom : Sans titre1.png
Affichages : 112
Taille : 16,2 Ko
    est ce que faut il utiliser un IBScript ?
    merci

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par delrama Voir le message
    Voila j'ai essayé de créer dynamiquement une BDD interbase

    Comment créer dynamiquement une base Interbase ?
    Philippe.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    merci pour ton orientation
    en fait c pas une création dynamique des composants mais du fichier NomBDD.GDB j'ai déposé les composants IB sur un datamodule

    pour afficher ma base sur un DBgrid (avec select) j'ai resolu le probleme :
    je ferme la base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    with IBDatabase1 do
                      begin
                      Params.Clear;
                      Params.Add('user=SYSDBA');
                      Params.Add('password=masterkey');
                      Params.Add('sql_dialect=3');
                      LoginPrompt := False;
    j'ouvre la base

    Lorsque je veux me connecter à ma base via un ibdatabase avec connected à true et LoginPrompt à false,
    et d'ignorer la boite de dialoque ID+PASSEWORD
    j'ai le message d'erreur suivant :
    (your user name and password are not defined ask your database administrator ti set up an interbase)

    Merci d'avance

  4. #4
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Les paramètres sont saisis différemment dans vos 2 exemples de code... . Vérifiez quelle est la syntaxe à employer !

    Pour toute requête renvoyant un ensemble de données, il faut utiliser Open; ou Active := True;
    Pour toute autre requête, il faut utiliser ExecSQL;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    IBQgle.SQL.Clear;
    IBQgle.SQL.Add('select * from T_CLIENT');
    //IBQgle.ExecSQL; // strictement inutile !
    IBQgle.Active := true;
    Philippe.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 12
    Points : 13
    Points
    13
    Par défaut
    bonjour:
    désolé pour les retards de messages (on a pas de connexion à domicile)
    bref voici le code complet : (résolu)

    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
    procedure TFNvllBDD.JvTransparentButton21Click(Sender: TObject);
    begin
    if JvEdit1.Text <> '' then
       begin
          if RadioBtn1.Checked then        // Création BDD vierge
            begin
               with DMgle do
               begin
                    IBDBgle.DatabaseName := GetCurrentDir+'\'+JvEdit1.Text+'.GDB';
                    IBDBgle.SQLDialect := 3;
                    IBDBgle.Params.Clear;
                    IBDBgle.Params.Add('USER "SYSDBA"');
                    IBDBgle.Params.Add('PASSWORD "masterkey"');
                    IBDBgle.Params.Add('PAGE_SIZE 4096');
                    IBDBgle.CreateDatabase;
                    IBDBgle.Connected := true;
                    IBTransGle.Active := true;
                    IBQgle.Close;
                    IBQgle.SQL.Clear;
                    IBQgle.SQL.Add('CREATE TABLE T_CLIENT(CODE_CLIENT  CHAR(5) NOT NULL,'
                                         +'TITRE        CHAR(8),'
                                         +'NOM_PRENOM   CHAR(64) NOT NULL,'
                                         +'TYPE_CLIENT  CHAR(15) NOT NULL,'
                                         +'ADRESSE      VARCHAR(64) NOT NULL,'
                                         +'COMMUNE      VARCHAR(32) NOT NULL,'
                                         +'WILAYA       VARCHAR(32) NOT NULL,'
                                         +'CODE_POSTAL  CHAR(5) NOT NULL,'
                                         +'TELEPHONE    CHAR(20) NOT NULL,'
                                         +'EMAIL        VARCHAR(100) NOT NULL,'
                                         +'ETAT         CHAR(7) NOT NULL);') ;
                     IBQgle.ExecSQL;
                     IBTransGle.Commit;
     
          IBDBgle.Connected:=false;
          IBDBgle.Params.Add('user_name=SYSDBA');
          IBDBgle.Params.Add('password=masterkey');
          IBDBgle.LoginPrompt := false;
           IBQgle.Close;
           IBQgle.SQL.Clear;
           IBQgle.SQL.Add('select * from T_CLIENT');
           IBDBgle.Connected:=true;
           IBTransGle.Active:=true;
           IBQgle.Open;
                 end; // end DMgle do
            end; // end RadioBtn1
     
          if  RadioBtn2.Checked then       // Création d'une BDD à partir d'une BDD existante
            begin
     
            end;  // end RadioBtn2
       end  //end JvEdit <> ''
     else
     begin
          MessageDlg('Specifiez d''abord le Nom de la BDD !!!', mtError, [mbOk],0);
     end; // end else
    end;
    je constate qu'il y a une différence entre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IBDBgle.Params.Add('USER "SYSDBA"');
                    IBDBgle.Params.Add('PASSWORD "masterkey"');
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IBDBgle.Params.Add('user_name=SYSDBA');
          IBDBgle.Params.Add('password=masterkey');
    salut à +

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

Discussions similaires

  1. probleme lors d'une création d'animation par le code
    Par Finality dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 13/10/2008, 22h12
  2. probleme lors de la création d'un utilisateur sur un poste client.
    Par passion_info dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 29/11/2006, 12h13
  3. [Oracle10gR2] ORA-00604 lors de la création d'une BDD
    Par Darkdaemons dans le forum Oracle
    Réponses: 9
    Dernier message: 07/11/2006, 11h22
  4. Réponses: 1
    Dernier message: 26/05/2005, 13h24
  5. [VB.NET] Problème étrange lors de la création de BDD
    Par Playmo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/03/2005, 23h25

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