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

PostgreSQL Discussion :

Synonyme ou alias en postgreSQL


Sujet :

PostgreSQL

  1. #1
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut Synonyme ou alias en postgreSQL
    Bonjour,
    Je vous détaille ce que j'ai dans mon entreprise, nous avons migré nos bases de données d'Oracle vers PostgreSQL, cette migration a été un succès et tout fonctionne de ce côté-là. Et tout nos postes sont connectés en ODBC (PostgreSQL ANSI x86).
    Mon problème est que nous avons plusieurs fichiers (formulaires) ACCESS qui possèdent des requêtes SQL, le problème étant que nos requêtes ne fonctionne plus, par exemple la requête suivante ne fonctionne pas:

    et je dois donc la corriger par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM public.arbre;
    N'y a-t-il pas moyen de créer un synonyme ou un alias en PostgreSQL comme je pouvais le faire en Oracle ?

    Bien à vous,
    Pensez à mettre comme si c'est le cas !

  2. #2
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Pour le schéma "public" ce comportement n'est pas normal car c'est le schéma par défaut. Le problème n'existe pas normalement avec les tables liées d'ACCESS; tu peux changer le nom dans access sans influence sur les liaisons.
    Pour la correction (en cas de problème avec ado dans vba),
    • gestionnaire de connexion ODBC
    • sélection de la connexion cible
    • le bouton "configurer" à droite
    • le bouton "datasource" en bas en gauche
    • le bouton "page 2" en haut
    • dans "connect settigns" saisir "set search_path = " suivi de la liste des schéma séparés par virgule: s, s2, s3;

    ou, dans l'éditeur de registre,
    • HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
    • sélection de la connexion
    • dans la clé "connsettings" saisir la liste des schémas comme ci-dessus.

    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  3. #3
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    Bonsoir,
    J'ai fait les changements comme tu me l'a dis mais ça ne fonctionne toujours pas, ci-dessous une capture d'écran:
    Nom : Capture-1.png
Affichages : 1390
Taille : 221,1 Ko
    Comme tu peux le voir, j'ai fait "lié les tables" (ce que je fais d'habitude) et j'obtiens la liste de toutes mes tables avec le préfixe "public.". Et ma requête en SQL dans Access ne fonctionne pas (il me dit qu'il ne trouve pas la table "arbre"), si je mets "public_arbre" là ça fonctionne. Autre question dans les paramètres ODBC de ma connexion, il y a une option "SysTablePrefix" qui a comme valeur "ddl_;", je l'ai déjà changé en "public_;" mais sans succès.

    Bien à vous,
    Pensez à mettre comme si c'est le cas !

  4. #4
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Le problème est encore plus simple à résoudre.
    Clic-droit sur la table liée puis "renommer", tu enlève "public_".
    Le paramètre SysTablePrefix ne sert à rien si tu ne veux pas voir les tables systèmes de postgresql (option "view system table").
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  5. #5
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    Bonjour,
    Merci d'avance pour ta proposition, mais celle-ci ne peut me convenir.

    Le problème étant que dans mes formulaires Access, j'ai dit "liste de choix" (ComboBox) et les éléments que contient cette liste sont liés à des tables, donc il faudrait que je modifie tous mes champs qui sont liés dans à des tables, chose qu'il m'est impossible de faire sans perdre un temps énorme.

    Bien à vous,
    Pensez à mettre comme si c'est le cas !

  6. #6
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 814
    Points
    17 814
    Par défaut
    D'après la doc, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SET search_path TO public;
    Essayez depuis Access de voir ce que retourne la commande :

  7. #7
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    J'ai corrigé ma valeur "connection string" avec celle que tu as indiqué.
    Depuis Access, dans le mode SQL (Créer > Création de requête > Mode SQL), si j'entre
    il n'est pas content, il dit
    Instruction SQL non valide: DELETE, INSERT, PROCEDURE, SELECT ou UPDATE attendus
    Et si j'entre
    il ne veut toujours pas, car il ne trouve pas la table (il faut que je rajoute le préfixe "public_" et là ça fonctionne).

    Et si je renomme la table (dans le volet de gauche) en enlevant le mot "public_" ça fonctionne. Je vais voir si je peux renommer toutes mes tables facilement et je reviens vers vous pour vous dire quoi.

    Merci
    Pensez à mettre comme si c'est le cas !

  8. #8
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 736
    Points : 52 447
    Points
    52 447
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par alassanediakite Voir le message
    Salut
    Pour le schéma "public" ce comportement n'est pas normal car c'est le schéma par défaut.
    NON ! c'est le schéma par défaut à l'installation. Cela peut être différent. Voir SEARCH_PATH

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  9. #9
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    Voici ci-joint remplacement de texte.zip un fichier access pour remplacer toutes les occurrences d'un texte dans une application access (table, requête, formulaire avec ses contrôles, état avec ses contrôles, module).
    J'ai fais ce code lors de la migration d'une base access vers postgresql; les suggestions sont les bienvenues.
    Merci sqlpro pour le rappel
    @+
    Le monde est trop bien programmé pour être l’œuvre du hasard…
    Mon produit pour la gestion d'école: www.logicoles.com

  10. #10
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    Dans la console PostgreSQL, la commande:
    me dit:
    "$user", public
    Je vais tester le script fournit par: alassanediakite
    Bien à vous,
    Pensez à mettre comme si c'est le cas !

  11. #11
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    Je clôture cette demande, car mon client a finalement renommé toutes ses tables dans Access sans que je n'aie eu le temps de lui transmettre la macro que vous m'avez proposée de tester.

    Merci pour tout.
    Pensez à mettre comme si c'est le cas !

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

Discussions similaires

  1. Chargement de données : Synonym et Alias
    Par masson_r dans le forum DB2
    Réponses: 15
    Dernier message: 23/02/2015, 23h30
  2. Les Synonymes sous PostgreSQL
    Par Dine_Med dans le forum Requêtes
    Réponses: 1
    Dernier message: 09/02/2009, 09h52
  3. database name translation (alias / synonym, autre ..)
    Par temoanatini dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/12/2008, 19h35
  4. alias ou synonymes pour les tables ou les champs ?
    Par nanou9999 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/03/2006, 12h04
  5. PostgreSQL & les synonymes
    Par samyl dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 07/05/2004, 17h32

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