Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre régulier
    Inscrit en
    août 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 63
    Points : 85
    Points
    85

    Par défaut Windev : ODBC Hyperfile : Installer le driver ODBC par programmation pour lire un fichier .FIC depuis JAVA

    Bonjour,

    Voici un code pour installer le driver ODBC hyperfile par programmation afin de pouvoir lire un fichier .fic depuis JAVA (ou autre), sans forcément avoir Windev d'installé sur sa machine.

    Le code à été testé sous Windev 15.

    Tout d'abord, il faut disposer de 5 fichiers .dll fournis par PC-Soft (Remplacer le 15 par votre version de Windev) :

    -WD150HF.DLL
    -WD150HFO.DLL
    -WD150SQL.DLL
    -WD150UNI.DLL
    -WD150VM.DLL

    A partir de la version 140026, les DLL se trouvent dans le répertoire "Program Files\Common Files\PC Soft\15.0\ODBC".

    Pour les versions précédentes, elles se trouvent dans "Windows\system32".

    Si vous ne disposez pas de ces fichiers, vous devriez pouvoir récupérer le pack d'installation "ODBC sur HyperFileSQL" sur le site de PC-Soft, dans l'espace de téléchargement des modules communs correspondant à votre version de Windev (Rechercher "odbc hyperfile modules communs") :
    http://www.pcsoft.fr/recherche.htm?s...6language%3DFR

    1/Installation du driver HyperfileSQL par programmation

    -sRepDLL correspond au répertoire dans lequel se trouvent les 5 fichiers .DLL du driver.

    Attention : Sous Windows Vista, il faut désactiver le contrôle d'accès utilisateur (UAC) de l'utilisateur courant pour pouvoir écrire dans le registre.

    Code :
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    LOCAL
    	sKey est une chaine
    	sKeyHF est une chaine
    	sRepDLL est une chaine
    
    sKey = "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI"
    sKeyHF = sKey+"\HyperFileSQL\"
    
    sRepDLL = "C:\Program Files\Common Files\PC SOFT\15.0\ODBC\"
    
    SI PAS RegistreCréeClé(sKeyHF) ALORS
    	SI ErreurDétectée ALORS
    		Erreur(ErreurInfo(errMessage))
    		RENVOYER Faux
    	FIN	
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"APILevel","1",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"ConnectFunctions","NYN",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"Driver",sRepDLL+"WD150HFO.DLL",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"DriverODBCVer","02.10",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"FileExtns","*wdd",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"FileUsage","0",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"Language","0",RegistreTypeEntier_8) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"Setup",sRepDLL+"WD150HFO.DLL",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"SQLLevel","0",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyHF,"UsageCount","0",RegistreTypeEntier) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    2/Installation de la source de donnée (DSN) par programmation

    Cette installation peut être faite en utilisant l'administrateur de données ODBC (ODBCAD32.EXE), comme expliqué ici :
    http://doc.pcsoft.fr/fr-FR/?3044273

    Par programmation, cela donne :

    -sRepDLL correspond au répertoire dans lequel se trouvent les 5 fichiers .DLL du driver.
    -sDSN correspond au nom que vous souhaitez donner à la source de données HyperFileSQL.
    Ce nom permettra d'identifier la base de données HyperFileSQL dans les programmes externes.
    -sWDD correspond au chemin complet de l'analyse hyperfile (Fichier *.WDD).
    -sRepFic correspond au répertoire des fichiers hyperfile correspondants à l'analyse (Fichiers *.FIC).

    Code :
    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
    57
    58
    59
    LOCAL
    	sKey est une chaine
    	sKeyDSN est une chaîne
    	
    	sDSN est une chaine
    	sWDD est une chaine
    	sRepFic est une chaine
    
    sDSN = "HELLODBC"
    sWDD = "C:\ODBC_TEST\Analyse.WDD"
    sRepFic = "C:\ODBC_TEST\"
    
    sKey = "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI"	
    sKeyDSN = sKey+"\"+sDSN
    
    SI PAS RegistreCréeClé(sKeyDSN) ALORS
    	SI ErreurDétectée ALORS
    		Erreur(ErreurInfo(errMessage))
    		RENVOYER Faux
    	FIN	
    FIN
    
    SI PAS RegistreEcrit(sKeyDSN,"Analyse",sWDD,RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyDSN,"Driver",sRepDLL+"WD150HFO.DLL",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyDSN,"Encryption","",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyDSN,"PWDXX","",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreEcrit(sKeyDSN,"RepFic",sRepFic,RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    
    SI PAS RegistreCréeClé(sKey+"\ODBC Data Sources") ALORS
    	SI ErreurDétectée ALORS
    		Erreur(ErreurInfo(errMessage))
    		RENVOYER Faux
    	FIN	
    FIN
    
    SI PAS RegistreEcrit(sKey+"\ODBC Data Sources",sDSN,"HyperFileSQL",RegistreTypeChaîne) ALORS
    	Erreur(ErreurInfo(errMessage))
    	RENVOYER Faux
    FIN
    3/Accès à la source de données depuis JAVA

    Code :
    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
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    public class ODBC_TEST {
    
    	public static void main(String[] args) {
    		try {
    			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    			} catch (ClassNotFoundException e) {
    				e.printStackTrace();
    			}
    		String jURL = "jdbc:odbc:HELLODBC";
    		try {
    			Connection Con = DriverManager.getConnection(jURL);
    			Statement jRequete = Con.createStatement();
    			ResultSet Resultat = jRequete.executeQuery("SELECT * FROM FI_CLIENT");
    			ResultSetMetaData jMetaData= Resultat.getMetaData();
    			int i = 0;
    			while(Resultat.next()){
    				i++;
    				System.out.println("");
    				System.out.println("-------------------------");
    				System.out.println("Enregistrement "+i);
    				System.out.println("");
    				for(int c = 1;c<=jMetaData.getColumnCount();c++){
    					System.out.println("Nom de colonne "+c+" : " + jMetaData.getColumnLabel(c)); 
    					System.out.println("Valeur : " + Resultat.getString(c));
    				}
    			}	
    			Resultat.close();
    			jRequete.close();
    			Con.close();
    		} catch (SQLException e) {
    			e.printStackTrace();
    		}
    	}
    }
    Des infos complémentaires sur la doc PC-Soft :
    http://doc.pcsoft.fr/fr-FR/?3044273

    Merci au logiciel RegShot :
    http://www.clubic.com/telecharger-fi...0-regshot.html
    qui m'a permis de voir les modifications effectuées dans le registre lors de la création de sources de données ODBC par le biais de l'exécutable ODBCAD32.EXE.

    Bonne prog

  2. #2
    Membre régulier
    Inscrit en
    août 2005
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : août 2005
    Messages : 63
    Points : 85
    Points
    85

    Par défaut Installation du driver HyperfileSQL et création de la source de données ODBC

    J'ajoute que l'installation du driver HyperfileSQL peut se faire sans programmation sur des postes sur lesquels Windev n'est pas installé, en créant un exécutable spécifique avec Windev, de cette manière :

    -Créez un nouveau projet Windev de base (Vous n'êtes pas obligé de créer la moindre fenêtre).
    -Paramétrez la création d'un exécutable avec WDINST (Menu "Outils .. WDINST - Éditeur d'installation").).

    1. Sélectionnez l'option "Installation .. Options de l'installation .. Fichiers HyperFileSQL".
    (Dans Windev 15, sélectionnez le menu "Paramètres de l'installation .. Fichiers HyperFileSQL")
    2. Cochez l'option "Installer le driver ODBC pour HyperFileSQL".
    3. Saisissez le nom permettant d'identifier la base de données HyperFileSQL lors de l'utilisation du driver ODBC sur HyperFileSQL, ainsi que le chemin de l'analyse .wdd utilisée comme source de données ODBC, puis validez.

    -Créez l'exécutable
    -Lancez l'exécutable sur les postes sur lesquels vous souhaitez installer le driver HyperFileSQL et créer la source de données ODBC.

    C'est fait !

    Explications complémentaires dans la doc en ligne Windev :
    http://doc.pcsoft.fr/fr-FR/?2028024

    Bonne prog

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •