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).

#1 Re : Installation » Configuration - Clients - TLS » 30/05/2017 16:12:51

j'ai oublié de préciser :
PostgreSQL 9.6.3 on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4, 64-bit

#2 Installation » Configuration - Clients - TLS » 30/05/2017 15:44:33

Pasquali.Philippe
Réponses : 1

Bonjour,
On me demande la correction suivante : "Configurer PostgreSQL pour qu'il n'accepte que les clients utilisants TLS 1.2 ou supérieur"
Une idée ?

#3 Général » Commande "COPY FROM PROGRAM" » 26/02/2015 12:34:05

Pasquali.Philippe
Réponses : 1

Bonjour,
Postgresql version 9.03.04 64 bits pour Windows

J'essaye d'utiliser cette fonction (http://www.postgresonline.com/article_p … y/345.html) qui exécute un programme (ogr_fdw_info.exe) dont le résultat est stocké dans la table ogr_fdw_out.

CREATE OR REPLACE FUNCTION ogr_fdw_sql_table(
    data_source text,
    layer text DEFAULT ''::text)
  RETURNS text AS
$$
BEGIN
    DROP TABLE IF EXISTS ogr_fdw_out;
    CREATE TEMP TABLE ogr_fdw_out(out text);
    IF layer > '' THEN 
            EXECUTE 'COPY ogr_fdw_out FROM PROGRAM ''"D:/Program Files/PostgreSQL/9.3/bin/ogr_fdw_info" -s "' || data_source || '" -l "' || layer || '"''';
    ELSE
            EXECUTE 'COPY ogr_fdw_out FROM PROGRAM ''"C:/Program Files/PostgreSQL/9.4/bin/ogr_fdw_info" -s "' || data_source || '"'' ';
    END IF;
    /** postgresql converts each output to a row, but we want as a single string back **/
    RETURN (SELECT string_agg(out,E'\n') from ogr_fdw_out);
END;

$$
  LANGUAGE plpgsql VOLATILE SECURITY DEFINER;

- Si j'exécute tel quel ce code avec comme paramètre : D:\temp\ogr\test_xls97_20003.xls et j'ai le message d'erreur :
ERREUR:  le programme « "D:/Program Files/PostgreSQL/9.3/bin/ogr_fdw_info" -s "D:\temp\ogr\test_xls97_20003.xls" » a échoué
DETAIL:  le processus fils a quitté avec le code de sortie 1
CONTEXT:  instruction SQL « COPY ogr_fdw_out FROM PROGRAM '"D:/Program Files/PostgreSQL/9.3/bin/ogr_fdw_info" -s "D:\temp\ogr\test_xls97_20003.xls"'  »
fonction PL/pgsql ogr_fdw_sql_table(text,text), ligne 9 à instruction EXECUTE

Je supprime les doubles quottes entourant le paramètre data_source

            EXECUTE 'COPY ogr_fdw_out FROM PROGRAM ''"C:/Program Files/PostgreSQL/9.4/bin/ogr_fdw_info" -s ' || data_source || ''' ';

- Si j'exécute avec le paramètre : D:\temp\ogr\test_xls97_20003.xls j'ai le résultat dans ma table
- Si j'exécute avec le paramètre : C:\Temp\test ogr\test_xls97_20003.xls je n'ai pas d'erreur mais pas de résultat dans ma table mais c'est normal vu que le chemin comporte un espace, donc je suppose qu'il ne trouve pas le fichier.

- Vérification directe avec les requêtes :

COPY ogr_fdw_out FROM PROGRAM '"D:/Program Files/PostgreSQL/9.3/bin/ogr_fdw_info.exe" -s d:\temp\ogr\test_xls97_20003.xls'

Fonctionne et j'ai le bon résultat dans la table ogr_fdw_out

COPY ogr_fdw_out FROM PROGRAM '"D:/Program Files/PostgreSQL/9.3/bin/ogr_fdw_info.exe" -s c:\temp\test ogr\test_xls97_20003.xls'

Pas d'erreur mais pas de résultat vu qu'il ne trouve pas le fichier

COPY ogr_fdw_out FROM PROGRAM '"D:/Program Files/PostgreSQL/9.3/bin/ogr_fdw_info.exe" -s "c:\temp\test ogr\test_xls97_20003.xls"'

ERREUR:  le programme « "D:/Program Files/PostgreSQL/9.3/bin/ogr_fdw_info.exe" -s "c:\temp\test ogr\test_xls97_20003.xls" » a échoué
DETAIL:  le processus fils a quitté avec le code de sortie 1

- Vérification dans une fenêtre MsDos :
"C:\Users\admin>d:\Program Files\PostgreSQL\9.3\bin\ogr_fdw_info.exe" -s d:\Temp\ogr\test_xls97_20003.xls : fonctionne et j'ai le bon affichage
"C:\Users\admin>d:\Program Files\PostgreSQL\9.3\bin\ogr_fdw_info.exe" -s c:\temp\test ogr\test_xls97_20003.xls : ERROR 1: Could not conect to source 'c:\temp\test'
"C:\Users\admin>d:\Program Files\PostgreSQL\9.3\bin\ogr_fdw_info.exe" -s "c:\temp\test ogr\test_xls97_20003.xls" : fonctionne et j'ai le bon affichage

Je n'arrive pas à comprendre ce qui génère l'erreur...

#4 Général » Foreign Data Wrapper : odbc_fdw, oracle_fdw et mysql_fdw » 03/02/2015 14:21:06

Pasquali.Philippe
Réponses : 0

Bonjour,

1) je recherche toutes informations concernant odbc_fdw (même si le projet semble ne plus avoir bougé depuis 2011). J'ai bien trouvé des sites comme http://sql-info.de/postgresql/fdw/fdw-matrix.html qui au final me renvoi sur le site https://github.com/ZhengYang/odbc_fdw où se trouvent les sources (pour du MAC semblerait-il), hors je suis en test sur du 9.3-Windows 7-64 bits.

2) j'ai téléchargé oracle_fdw-1.2.0-pg93-win64 (https://github.com/laurenz/oracle_fdw/r … _FDW_1_2_0) mais quand j'installe avec pgAdminIII l'extension il me génère l'erreur : "n'a pas pu charger la bibliothèque "d:\...\oracle_fwd.dll : unknown error 126" (j'ai vérifié que la dll en question était bien une version 64bits)

3) et pour finir, le cas de mysql_fdw ou je tombe sur la page https://github.com/EnterpriseDB/mysql_fdw des sources alors que je désirais "l’exécutable"

Merci d'avance

#5 Re : C et C++ » LIBPQ.DLL version 64 bits » 17/01/2015 13:52:23

Problème résolu.
Mon pc ayant plusieurs versions en 32 et 64 plus divers programmes utilisant chacun libpq, je pense qu'il se mélangeait les pinceaux...
Avec "Dependency walker for Win64" j'ai regardé la liste des dll que libpq.dll utilisait et j'ai testé les différentes combinaisons et voici l'ordre de chargement qui fonctionne
1° libeay32.dll
2° libintl-8.dll
3° ssleay32.dll
4° libpq.dll"

#6 Re : C et C++ » LIBPQ.DLL version 64 bits » 16/01/2015 13:17:08

Test fait en VC avec Visual Studio 12 :
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>

int _tmain(int argc, _TCHAR* argv[])
{
    HINSTANCE hinstLib;
    DWORD nErrorCode;
    CHAR* msg;

    //LPCSTR DllName = "D:\\Mes Projets\\LIBPQ\\Exe\\Exécutable Windows 64 bits\\EnCours-libpq64\\libintl-8.dll";
    LPCSTR DllName = "D:\\Mes Projets\\LIBPQ\\Exe\\Exécutable Windows 64 bits\\EnCours-libpq64\\libpq.dll";
    hinstLib = LoadLibraryA(DllName);

    if (hinstLib == NULL)
    {
        nErrorCode = GetLastError();
        FormatMessageA(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
                       NULL,
                       nErrorCode,
                       MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
                       (LPSTR)&msg,
                       0,
                       NULL);
        printf("Erreur : %d\n%s\n", nErrorCode, msg);            // nErrorCode = 193
    }
    else
    {
        FreeLibrary(hinstLib);
        printf("%s\n", "Ok");
    }
    return 0;
}
1>------ Début de la génération : Projet : ConsoleApplication4, Configuration : Debug x64 ------
1>  ConsoleApplication4.cpp
1>  ConsoleApplication4.vcxproj -> D:\VS2013\ConsoleApplication4\x64\Debug\ConsoleApplication4.exe
========== Génération : 1 a réussi, 0 a échoué, 0 mis à jour, 0 a été ignoré ==========
pour libintl-8.dll -> ok
pour libpq.dll -> Erreur : 193
                        %1 n'est pas une application Win32 valide. (message identique !)

Sauf erreur de ma part, le problème me semble de moins en moins lié au langage mais plus à libpq.dll version 64 bits.

#7 Re : C et C++ » LIBPQ.DLL version 64 bits » 15/01/2015 18:52:31

Test fait en VB avec Visual Studio 12 :

Module Module1
    Private Declare Function LoadLibraryA Lib "kernel32" Alias "LoadLibraryA" (ByVal lpFileName As String) As Long

    Sub Main()
        Dim hnd As Long
        Dim DllName As String

        DllName = "D:\Mes Projets\LIBPQ\Exe\Exécutable Windows 64 bits\EnCours-libpq64\libintl-8.dll"
        hnd = LoadLibraryA(DllName)
        MsgBox(hnd, MsgBoxStyle.Information, "libintl-8.dll")

        DllName = "D:\Mes Projets\LIBPQ\Exe\Exécutable Windows 64 bits\EnCours-libpq64\libpq.dll"
        hnd = LoadLibraryA(DllName)
        MsgBox(hnd, MsgBoxStyle.Information, "libpq.dll")

    End Sub
End Module

------ Début de la génération : Projet : ConsoleApplication2, Configuration : Debug x64 ------
  ConsoleApplication2 -> D:\VS2013\ConsoleApplication2\ConsoleApplication2\bin\x64\Debug\ConsoleApplication2.exe
========== Génération : 1 a réussi, 0 a échoué, 0 mis à jour, 0 a été ignoré ==========

libintl-8.dll renvoi hnd <> 0
libpq.dll     renvoi hnd =  0

le problème ne semble pas lié à Windev

#8 C et C++ » LIBPQ.DLL version 64 bits » 15/01/2015 13:26:42

Pasquali.Philippe
Réponses : 3

Bonjour (et bonne année 2015)
Environnement  : Windows : 64 bits

- J'ai téléchargé postgresql-9.4.0-1-windows-binaries.zip et postgresql-9.4.0-1-windows-x64-binaries.zip pour avoir
libpq.dll et libintl.dll (32 bits)
libpq.dll et libintl-8.dll (64 bits)

- Avec dumpbin de Visual Studio 12.0 j'ai bien vérifié que j'avais bien des versions 32 bits et 64 bits

- Avec Windev version 18

1° je compile mon application pour du 32bits : tout fonctionne à 100%

2° je compile mon application pour du 64 bits : Impossible de charger la dll libpq.dll
                                        Message d'erreur : "libpq.dll n'est pas une application Win32 valide"

Si je test avec la fonction : LoadLibraryA au lieu d'utiliser la fonction LoadDll() de Windev :

DLLName1 est une chaîne = PathOfDll + "libintl-8.dll"
handleDLL1 est un entier système = API("Kernel32.dll", "LoadLibraryA", &DLLName1)               // ---> handleDLL <> 0 c'est OK

DLLName2 est une chaîne = PathOfDll + "libpq.dll"
handleDLL2 est un entier système = API("Kernel32.dll", "LoadLibraryA", &DLLName2)               // ---> handleDLL = 0    c'est bad

J'avoue que je sèche lamentablement...

#9 ODBC » Limitation du driver ODBC à 0x3FFF caractères en lecture » 30/05/2014 18:23:52

Pasquali.Philippe
Réponses : 0

Bonjour,
Driver odbc 64 bits version 9.03.03.00 sur Windows 7
1°) Ou peut-on trouver les limites du driver odbc car il semblerait qu'il soit impossible de récupérer une colonne contenant  plus de 0x3FFF (16383) caractères en une seule passe. Que la colonne soit de type char ou bytea j’ai la même limite.

2°) j’ai une colonne student_picture de type bytea pour stocker de petites images 15/20ko que je désire relire très simplement :  select student_picture from students where key_student = 2.
Mais au lieu de récupérer (exemple pour les 3 premiers octets) : 0xac 0x65 0x5a ..., je me retrouve avec la chaine ‘ac655a...’ que je dois traiter pour retrouver mes octets…Es normal ?

merci d'avance.

Pied de page des forums

Propulsé par FluxBB