PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#51 Re : pgAdmin4 » saisie d'attributs avec pré contrôle sur les valeurs » 16/04/2018 13:04:08

Bonjour,
Si vous utilisez "FABR_PRO" comme nom de table, il faut utiliser la même valeur dans l'expression définissant la contrainte :

ALTER TABLE public."FABR_PRO"
    ADD CONSTRAINT ck_prix_fabrication CHECK ("FABR_PRO".prix_fabrication < 1000)

NB : il est vivement recommandé d'utiliser  des noms d'objets tout en  minuscules

#52 Re : pgAdmin4 » Importation de données shape en lots sous PostgreSQL-postGIS » 29/03/2018 17:46:05

Bonjour,

Vous pouvez utilisez shp2pgsql dans un script (batch ou bash) qui est fourni avec PostGIS.
Merci de na pas "cross-poster" ou au moins de l'indiquer...

#53 Re : PgAdmin3 » Champ Liste deroulante » 22/03/2018 12:46:06

Vous confondez le moteur de bases de données (serveur) et l'interface qui permet d'y accéder (client).


Effectivement le type enum permet définir une liste finie de valeurs qui est contrôlée/exploitée en interne par le moteur de base de données.
Vous voulez faire la même chose côté utilisateur.


Vos formulaires sont définis dans QGIS qui fournit l'interface de saisie/consultation/visualisation des données stockées dans une base de données PostgeSQL/PostGIS


Vous pouvez récupérer la liste de valeurs à partir des colonnes d'une couche (qui peut être sans géométrie) mais de toute façon la liste n'est pas chargée dynamiquement et elle est stockée ainsi que le formulaire dans le fichier <projet>.qgs que vous pouvez transmettre facilement.


Ce forum étant dédié à PgAdmin3, si vous avez d'autres questions, je vous invite à poursuivre sur le forum dédié à QGIS sur georezo.net ou ForumSIG

#54 Re : PgAdmin3 » Champ Liste deroulante » 22/03/2018 10:52:37

Bonjour,

C'est effectivement au niveau de QGIS qu'il faut définir votre liste déroulante.
Dans QGIS3, Propriétés de la couche > Formulaire d'attributs
Choisir le Type d'outil "Liste de valeurs" pour le champ concerné et saisir les valeurs requises ou importer un .csv

#55 Re : Général » COPY Command with comma in string values - Postgresql 10 » 02/03/2018 02:20:51

Bonsoir,

Ce forum est francophone, c'est pourquoi je vous réponds en français.
Il faut indiquer à Postgres que la partie entre guillemets simples représente  une seule valeur de type texte.

CREATE TABLE t1 (id INTEGER, testvalues TEXT);
COPY t1 FROM '/opt/Data/TestInfo.dat' WITH CSV DELIMITER AS ',' QUOTE AS '''' NULL AS '';
SELECT * FROM t1;

NB: il est recommandé d'utiliser des noms d'objets (tables, colonnes, etc..) en minuscules (Postgres les convertira de toute façon en minuscules à moins de les mettre entre guillemets doubles)

#56 Re : Général » database version 8.4 et celle version 9.1 » 05/02/2018 23:08:52

Bonsoir,

Il faut regarder dans le fichier postgresql.conf de chaque instance, quel port est utilisé.
C'est le port utilisé pour la connexion (5432 par défaut) qui détermine l'instance à laquelle on se connecte.

ps ax | grep postgresql

permet de lister les instances en cours d'exécution et l'emplacement du postgresql.conf que chacune utilise

#57 Re : Général » max (date) » 05/01/2018 19:34:54

Bonsoir,

SELECT * FROM carmanagement AS t1 WHERE "date" = (SELECT MAX("date") FROM carmanagement AS t2 WHERE t2.u = t1.u GROUP BY u )

#58 Re : PL/pgSQL » Recuperation nom d'une table à partir de TG_TABLE_NAME » 29/11/2017 14:49:19

Bonjour,
Difficile de vous aider sans plus de précisions.
Vous devriez poster le code de votre fonction.

#59 Re : Général » database backup » 08/10/2017 15:28:10

Bonjour,

Le fichier "file.sql" sera créé dans le répertoire actif au lancement de la commande.
Vous pouvez utiliser la commande pwd pour savoir dans quel répertoire vous vous trouvez avant de lancer la commande (ou juste après)

#60 Re : Optimisation » Définir la priorité du processus postgres.exe » 21/07/2017 13:19:02

EXPLAIN devrait vous aider dans un premier temps mais il me semble que l'ERP devrait lui-même avoir configuré les bons index.

#61 Re : Optimisation » Définir la priorité du processus postgres.exe » 21/07/2017 12:38:57

Bonjour,
Je ne suis pas expert Windows Server mais :
- ces processus sont lancés par le service (pg_ctl.exe) et je connais pas de moyen de changer la priorité autrement que via le gestionnaire ds tâches.
- à ma connaissance, Microsoft déconseille de définir la priorité à "Haute" ou "temps réel" pour plus d'un processus (risque de blocage du à l'attente de la fin d'un processus moins prioritaire); il faut s'assurer que toutes les ressources (processeur(s)/coeur(s) ne sont pas monopolisées par un processus prioritaire qui attendrait la fin d'un processus moins prioritaire.
- aussi je laisserai Windows gérer la question.

#62 Re : PgAdmin3 » Réasultat de requête trop long (...) » 18/07/2017 09:01:23

Bonjour,
La réponse concernait PG Admin III. ¨L'option a peut-être disparu dans PGAdmin IV.

#63 Re : Sécurité » Drop des fichiers d'une db » 10/07/2017 18:52:44

Bonsoir,
Le nom du répertoire contenant les données de la BD est égal à l'OID de la BD.
(Ex les données de la BD d'OID 18331 sont dans le répertoire ..../data/base/18331)

#64 Re : Migration » ACCESS vers SQL » 29/05/2017 13:49:36

Globalement (jamais effectué) :
- installer PostgreSQL sur une machine accessible depuis internet
- installer l'extension postgres_fdw
- configurer une source ODBC sur la base Access
- initier la connexion avec le fdw odbc

Sinon, une piste peut être la création d'un ou plusieurs fichiers sql ou csv, automatisée depuis access, transfert de ce(s) fichier(s) sur le serveur Postgres et mise à jour de la bd Postgres par exécution programmée du ou des scripts SQL adéquat(s)

Une autre voie (surement la plus simple pour un débutant) serait une macro sous Access qui se connecte à PostgreSQL via ODBC et réalise les mises à jour désirées.

Dans tous les cas, vous aurez besoin d'un minimum de compétences sur PostgreSQL ainsi qu'en SQL et de faire un minimum de développement.

#65 Re : Migration » ACCESS vers SQL » 26/05/2017 08:54:26

Bonjour,
Je passerais par un script, lancé par une tâche planifiée qui se connecte à la bdd Access via un "foreign data wrapper" ODBC et récupère les données voulues.

#66 Re : PL/pgSQL » Passage de parmètre .bat -> .sql » 24/05/2017 17:26:37

Lorsque vous rentrez les valeurs de vos paramètres, il faut saisir les guillemets simples pour les chaines de caractères (ou les mettre dans le fichier.bat) :
.bat

set /P val1=Nom ?
set /P val2=Age ?
psql --set param1=%val1%  --set param2=%val2% -f c:/temp/toto.sql

qui donne :

Nom ?'titi'
Age ?25
psql --set param1=%val1%  --set param2=%val2% -f c:/temp/toto.sql
 ?column? | ?column?
----------+----------
 titi     |       25
(1 ligne)

ou

set /P val1=Nom ?
set /P val2=Age ?
psql --set param1='%val1%'  --set param2=%val2% -f c:/temp/toto.sql

qui donne

Nom ?titi
Age ?25
psql --set param1='%val1%'  --set param2=%val2% -f c:/temp/toto.sql
 ?column? | ?column?
----------+----------
 titi     |       25
(1 ligne)

#67 Re : Optimisation » mémoire partagée corrompue sous Windows 7 SP1 » 24/05/2017 17:14:01

Bonjour,

Ce n'est probablement pas un problème PostgreSQL.  Si vous n'avez pas déjà modifié le fichier la configuration par défaut, je penserais plutôt à une barrette mémoire défaillante. Sinon, je reviendrais en priorité à la configuration par défaut.
L'erreur se produit-elle avec d'autres applications ?

#68 Re : PL/pgSQL » Passage de parmètre .bat -> .sql » 24/05/2017 15:30:12

Bonjour,

L'équivalent Windows de l'exemple de Julien est (à titi près) si toto.sql est dans c:\temp et si le chemin de psql.exe est dans la variable PATH

set val1='titi'
set val2=42
psql --set param1=%val1%  --set param2=%val2% -f c:/temp/toto.sql
 ?column? | ?column?
----------+----------
 titi     |       42
(1 ligne)

#69 Re : PL/pgSQL » Passage de parmètre .bat -> .sql » 22/05/2017 11:50:45

rjuju a écrit :

Vous devriez vous en sortir en utilisant une commande du style

psql --set nom_variable1=valeur1 --set nom_variable2=valeur ... -f fichier.sql 

et en utilisant ensuite « :nom_variable » à la place de votre valeur en dur.

Beaucoup plus simple !

#70 Re : PL/pgSQL » Passage de parmètre .bat -> .sql » 22/05/2017 11:00:26

Bonjour,
Clairement ce n'est pas un problème PL/pgSQL mais plutôt "batch Windows".
Vous devriez arriver à vos fins en utilisant "sed" (voir http://unxutils.sourceforge.net/ ou http://gnuwin32.sourceforge.net/) en insérant la commande sed adéquate avant l'exécution de psql

#71 Re : PSQL » RESOLU : COPY TO concaténation chaine de caractère pour chemin sortie » 12/05/2017 11:13:03

Gardez les variantes pour la suite...Merci de copier le code complet de la fonction (en l'encadrant avec les balises de code, ([ code ] et [ /code ] sans les espaces)

#72 Re : PSQL » RESOLU : COPY TO concaténation chaine de caractère pour chemin sortie » 11/05/2017 18:06:12

Les guillemets ne sont pas corrects, c'est  :

EXECUTE 'COPY (SELECT data FROM tmp WHERE id = 1) TO ''D:/_users/BMI/' || directory || '''';

[EDIT] Merci rjuju !

#73 Re : Site PostgreSQL.fr » Replication postgresql 9.4.4 problème de droit avec archive_command » 26/04/2017 11:57:20

ruizsebastien a écrit :

dans la doc l'archive_command pour windows reseemble plutôt à ça :
archive_command = 'copy "%p" "C:\\server\\archivedir\\%f"'  # Windows

Il manque donc pour vous la lettre du lecteur.
Désolé mais je ne travaille jamais avec un postgresql sous windows...donc je tâtonne aussi.

S'agissant d'un chemin réseau Windows, la syntaxe utilisée par asdean est correcte. Le chemin indiqué dans la doc est un chemin local (qui pourrait pointer sur un lecteur réseau) d'où la lettre identifiant le lecteur en première position.
Il y a confusion entre les antislashes doublés dans une affectation et le double antislash introduisant un nom de machine ou adresse IP (ce qui dans une affectation donne 4 antislashes !)
Comme le dit rjuju c'est un problème de droits de l'utilisateur exécutant le service.
Vous pouvez les vérifier avec Propriétés : Onglet Sécurité puis Avancé et onglet Autorisations effectives

#74 Re : PgAdmin3 » Réasultat de requête trop long (...) » 25/04/2017 17:23:21

Bonjour,
Fichier > Préférences > Editeur de requêtes : Nombre maximum de caractères par colonne

#75 Re : Général » Import CSV: droits, clé primaire, choix champs - sql ou psql et batch? » 21/04/2017 08:43:34

meonais a écrit :

Je suis dans une structure organisée en agences sur différentes régions.
L'idée est de proposer un outil qui puisse tourner sur n'importe quel poste, qu'il soit connecté au réseau de la structure ou non, pour réaliser un certain nombre de calculs et d'analyses géographiques. Sachant que de toutes façons il n'y a pas de serveur de base de données géographiques unique, chacun se crée son propre serveur sur son propre ordinateur au besoin... (j'espère utiliser les bons termes et me faire comprendre... hmm)

Effectivement, le fonctionnement client/serveur au sens strict (avec dees données centralisées) est exclu

Les utilisateurs de l'outil ne sont pas forcément adeptes de logiciels cartographiques, ou de gestionnaires de base de données, et encore moins de SQL...

C'est pourquoi je cherche à créer cet outil le plus simple possible pour les utilisateurs à venir, sans trop de manipulations et de termes ou noms de logiciels abracadabrantesques wink
Ils sont tous en Windows mais avec une grande disparité de version (de XP -oui oui- à 10?)

L'installation de Postgresql/PostGis + la disponibilité de psql.exe + la disponibilité de shp2pgsql.exe + le script batch + le(s) fichier(s) .sql + les fichiers csv ou shp      me semble une bonne alternative.

Je crois que vous n'échapperez pas à une acquisition minimale de compétences pour les utilisateurs donc de formation (SQL et QGIS).

Ainsi, je souhaitais transmettre l'outil au travers d'un dossier de fichiers [BILAN] avec une arborescence fixe contenant :
- les .exe nécessaires (Postgresql, psql, shp2pgsql, PgAdminIII pour les plus avertis - avec les bonnes versions car elles sont appelées dans le batch)
- les scripts batch et sql
- les fichiers de données permanents au format csv et/ou shp que les scripts importeront dans la base de données
- les fichiers de "données d'entrées" au format csv et/ou shp que l'utilisateur aura à remplacer et que les scripts importeront dans la base de données
- les fichiers résultats produits par les scripts


Et demander à l'utilisateur :
- d'installer Postgresql/PostGis sur leur poste (et PgAdminIII pour les plus avertis)
- de créer la base avec les paramètres indiqués dans mon script batch (ou alors je peux le faire par le script peut-être plus simple ?)
- d'enregistrer le dossier de fichiers [BILAN] au bon endroit (C:\Users\Public\Documents\) afin que les scripts puissent bien tourner
- de lancer le fichier batch


Les "données d'entrée" pour l'analyse sont :
- soit fournies par l'outil : je les ai inclus dans les dossiers de l'outil pour qu'ils soient importés (fichiers shp ou csv) à chaque lancement des analyses. J'avais aussi pensé à un dump, et je ne jette pas l'idée car je pense que j'ai finalement tout intérêt (en complément du script de création de la base ? ... je n'ai encore pas fait ce genre de code hmm)
- soit récupérées auprès d'autres contributeurs : l'utilisateur doit les enregistrer au bon format au bon endroit et l'outil vient les récupérer pour les importer dans la base postgresql.


J'espère avoir été "limpide" dans ces explications ?...
Qu'en pensez-vous ? Est-il possible de simplifier encore ?

PgAdmin sera peut-être plus accessible que psql pour des utilisateurs habitués à Windows
Cela supposerait de préparer une installation personnalisée d'un kit de votre environnement: PostgreSQL+QGIS+données.
C'est possible via des outils Inno Setup, NSIS ou Wix qui permettent de gérer ce qui est installé (ou pas), l'organisation des répertoires, et les versions de Windows. Mais c'est loin d'être anodin et suppose là aussi un minimum de compétences

D'avance merci smile


PS : j'ai encore un gros problème de compréhension et donc de gestion des jeux de caractères, entre le serveur, le client, les fichiers bat et sql... Je suppose qu'il vaudrait mieux poser la question dans un autre post ? Encore merci !

En effet. Une recherche sur les termes "locale", "encodage", "encoding"dans la doc de PostgreSQL devrait déjà vous donner quelques réponses.

Pied de page des forums

Propulsé par FluxBB