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 :

Connexion à PostgreSQL


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2004
    Messages
    170
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 170
    Par défaut Connexion à PostgreSQL
    Bonsoir,

    j'ai lu tellement que je ne sais plus quel avis considérer.

    J'essaie de connecter Delphi à ma base de données PostgreSQL. J'ai voulu essayé un accès natif avec OLE DB mais je n'ai pas pu connecter malgré les instructions (en anglais malheureusement). Bref, j'ai essayé avec ODBC et c'est passé. Pour celà, je me suis aidé du post vraiment précis à l'adresse: http://www.developpez.net/forums/d78...tion-requetes/ . Pour aller plus vite, je vous présenter la partie qui m'a aidée:

    Edam, merci pour ta réponse.

    Malheureusement, cela ne m'a pas apporté de solutions.

    Mais les recherches que j'ai effectuées à la suite de tes posts m'ont ouvertes quelques portes : j'ai réussi à me connecter avec ODBC.

    Elements de résolutions pour les personnes ne trouvant pas de solution avec cette erreur :
    Installation des drivers de PostgreSQL avec ODBC, ici : ftp://ftp.postgresql.org/pub/odbc/ve...08_04_0100.zip
    Configuration de ODBC :
    Aller dans le Panneau de configuration
    Aller dans les Outils d'administration
    Aller dans Sources de données (ODBC)
    Choisir l’onglet Drivers et vérifier que PostgreSQL ANSI et PostgreSQL Unicode sont bien présents
    Aller dans l’onglet USER DNS, puis cliquez sur ADD
    Sélectionner PostgreSQL Unicode(ou AINSI) puis Terminer
    Remplir les cases :

    où :
    DataSource : est le nom du "lien" que l'on créé
    Database : est le nom de la base de donnée à laquelle on veut acceder
    Serveur : est l'endroit sur lequel est situé la base
    Port : est le port par lequel on accède à PostgreSQL (par défaut 5432)
    UserName : est le nom du compte
    Password : est le mot de passe du compte associé au UserName
    Configuration du fichier Delphi :
    On change la chaine de connexion par :
    Code :
    Provider=MSDASQL.1;Persist Security Info=False;Data Source=Postgre
    où :
    Source : est le nom du "lien" que l'on créé (cad le même que celui que l'on met dans la configuration de ODBC)

    Je pense qu'il y a de nombreuses manières d'arriver à un résultat correct...
    Cette méthode m'a permis de faire fonctionner mon script presque sans changement.
    Je dis presque car j'avais des endroits où l'exécution de requêtes se était de la forme :
    Code :
    ADOQuery1.ACtive:=false;
    ADOQuery1.SQL.text:='delete from data';
    ADOQuery1.active:=true;
    Il faut remplacer la dernière ligne par
    Code :
    ADOQuery1.ExecSQL;
    Sinon cela fait une erreur de la forme :
    Code :
    AdoDataSet1: commandText ne renvoie pas un ensemble de résultats
    Bonne journée
    Meloo
    J'ai alors deux questions:

    1. Comment automatisé par code la création et le paramétrage du DSN ?
    2. De BDE, OLE DB et ADO qu'est ce qui est intéressant pour un accès rapide à la base et pour une utilisation de toutes les fonctionnalités de postgresql? Je souhaiterais depuis Delphi utiliser les vues de postgresql, appeler les procédures stockées, etc.

    Merci d'avance.

  2. #2
    Membre confirmé Avatar de abdelghani_k
    Inscrit en
    Octobre 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2002
    Messages : 184
    Par défaut
    1. Création DSN :

    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
    const
      ODBC_ADD_DSN        = 1;    // Add data source
      ODBC_CONFIG_DSN     = 2;    // Configure (edit) data source
      ODBC_REMOVE_DSN     = 3;    // Remove data source
      ODBC_ADD_SYS_DSN    = 4;    // add a system DSN
      ODBC_CONFIG_SYS_DSN = 5;    // Configure a system DSN
      ODBC_REMOVE_SYS_DSN = 6;    // remove a system DSN
     
    type
    TSQLConfigDataSource = function( hwndParent: HWND;
                                     fRequest: WORD;
                                     lpszDriver: LPCSTR;
                                     lpszAttributes: LPCSTR ) : BOOL; stdcall;
     
    procedure TForm1.FormCreate(Sender: TObject);
    var
      pFn: TSQLConfigDataSource;
      hLib: LongWord;
      strDriver: string;
      strAttr: string;
      strDB: string;
      fResult: BOOL;
     
    begin
      strDB := 'demo';
      hLib := LoadLibrary( 'ODBCCP32' );
      if( hLib <> NULL ) then
      begin
        @pFn := GetProcAddress( hLib, 'SQLConfigDataSource' );
        if( @pFn <> nil ) then
        begin
          strDriver := 'PostgreSQL ANSI';
          strAttr := Format( 'DSN=demo'+#0+
                             'Description=demo database'+#0+#0,
                             [strDB] );
          fResult := pFn( 0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1] );
          if( fResult = false ) then ShowMessage( 'Création DSN (Datasource) échoué!' );
     
        end;
     
        FreeLibrary( hLib );
      end
      else
      begin
        ShowMessage( 'Chargement impossible de ODBCCP32.DLL' );
      end;
    end;
    Il reste quelques paramètres DSN PostgreSQL (serveur, port, utilisateur, mot de passe).

    2. Moi je préfère les accès natifs.
    Mais je ne suis en mesure de comparer les accès via ODBC ou autre.

    fournit un composant commercial Unidac.

  3. #3
    Membre confirmé Avatar de abdelghani_k
    Inscrit en
    Octobre 2002
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Octobre 2002
    Messages : 184
    Par défaut
    pardon
    http://www.devart.comfournit un composant commercial Unidac.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 737
    Par défaut
    Tu peux aussi regarder Zeos

    http://sourceforge.net/projects/zeoslib/ c'est gratuit

Discussions similaires

  1. JDBC + connexion postgreSQL
    Par BARBIER dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/12/2005, 11h17
  2. connexion à Postgresql par PHP
    Par toome dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 02/09/2005, 10h49
  3. connexion postgresql
    Par lulu0809 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 16/02/2005, 16h27
  4. Erreur de connexion à PostGresql via pgAdminII
    Par LS dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 21/08/2003, 09h51
  5. Connexion à postgresql dans un sous reseau window
    Par Chihuahua dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 21/07/2003, 14h19

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