PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → [WB14] PB connexion ODBC HyperFile avec Webdev PHP
[WB14] PB connexion ODBC HyperFile avec Webdev PHP
Débuté par Julien, 22 avr. 2009 16:32 - 2 réponses
Posté le 22 avril 2009 - 16:32
Bonjour,

Je n'arrive pas à me connecter sur ma base HyperFile C/S en passant par le driver ODBC hyperfile 14.

J'ai crée ma source de données "HFSQL" avec le pilote "HyperFileSQL" dans l'administrateur de source de données ODBC de Windows dans la partie "Sources de données utilisateur". J'ai fait de même dans la partie "Source de données système" mais avec le nom "myHFSQL".

J'ai testé de différentes manière (une partie ci-dessous) avec "HFSQL" et "myHFSQL" mais toujours pas de résultat :s

- SQLConnecte("HyperFileSQL","","","HFSQL","HyperFile") : Message renvoyé = Le type d'accès aux données HyperFile n'est pas supporté en PHP.
- SQLConnecte("HyperFileSQL","","","HFSQL","ODBC") : Erreur IM002 Source de données introuvable et nom de pilote non spécifié
- SQLConnecte("HFSQL","","","HyperFileSQL","ODBC") : même message que le précédent
...

Je ne sais plus quoi tester ... ni quoi faire ! une idée ?

Merci d'avance !

Cordialement
Posté le 23 avril 2009 - 16:37
Bon je me réponds ça pourra peut être servir à quelqu'un un de ces jours !

Source est une chaîne = "DRIVER={HyperFileSQL};DSN=myHFSQL;ANA=chemin_analyse.wdd;REP=;Server Name=127.0.0.1;Server Port=4900;Database=myBase;UID=admin;PWDXX=;Encryption="

SI PAS SQLConnecte(Source,"","","","ODBC") ALORS
SQLInfoGene()
Erreur(SQL.Erreur + RC + SQL.MesErreur)
FIN


ou en php

$dsn="DRIVER={HyperFileSQL};DSN=myHFSQL;ANA=chemin_analyse.wdd;REP=;Server Name=127.0.0.1;Server Port=4900;Database=myBase;UID=admin;PWDXX=;Encryption=";

$connexion = odbc_connect($dsn,'','','SQL_CUR_USE_ODBC') OR die( odbc_error() );


Pas forcément évident à trouver avec l'aide ...
Membre enregistré
12 messages
Popularité : +7 (7 votes)
Posté le 04 octobre 2020 - 13:57
<html>
<head>
<meta http-equiv="Content-Language" content="ar-tn">
<!-- <meta http-equiv="Content-Type" content="text/html; charset=windows-1256"> -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<!-- <meta charset="UTF-8"> -->
</head>
<?php



//header('Content-Type: charset=utf-8'); // Pour affiche le conetu en mode JSON

//'meta http-equiv="Content-Type" content="text/html; charset=utf-8"'

// Repertoire de ficher analyse (x:\repertoire\yyyy.wdd)
$Analyse_directory = "";

// Repertoire des fichers base de données
$Base_directory = dirname(__FILE__);


// Nom de base de données pour HFSQL Client/Server
$Base_name = "";

// USER HFSQL server
$USER_HFSQL = "";

// Password HFSQL server
$PWD_HFSQL = "";


// Nom de base de données pour Classic
$Base_file_name = "fav";

// Mots de passe pour base de données
$Base_pwd = "";

// Paramètre pour HFSQL Classic database
$Params_Classic = "\"Password=*:$Base_pwd;\"";

// Paramètre pour HFSQL Client/Server database
$Params_CS = "\"Password=$Base_file_name:$Base_pwd;\"";

// Requete SQL
//$SQL_Request = "insert into fav (id_posts,title,desc) values ('44','aaaa','bbbb')";//"SELECT * FROM fav";
//$SQL_Request = "update fav set title='xxx' where IDfav=7";
$SQL_Request = "SELECT * FROM fav";
// Type de connection ( HFSQL_Cl : HFSQL Classic ) ou ( HFSQL_CS : HFSQL Client/Server )
$Type_Connection = "HFSQL_Cl";



try{


// Code de connection
$conn = new COM("ADODB.Connection") or die("Cannot start OLEDB");
switch ($Type_Connection) {
case "HFSQL_CS":
$conn->Open("provider=PCSoft.HFSQL;initial catalog=$Base_name;data source=127.0.0.1:4900;User ID=$USER_HFSQL;Password=$PWD_HFSQL;Extended Properties=$Params_CS;");
break;
case "HFSQL_Cl":
$conn->Open("Provider=PCSOFT.HFSQL;Data Source=$Analyse_directory;Initial Catalog=$Base_directory;Password=;Extended Properties=$Params_Classic;");
break;
default:
die("Unknow Type of Connection.");
}
$rs = $conn->Execute("$SQL_Request");
/////////////////////



// calculer nombre des colonnes
$num_columns = $rs->Fields->Count();
for ($i=0; $i < $num_columns; $i++) {

// ignore error si detect
try{
//echo $rs->Fields($i)->name . " : \t" . gettype($rs->Fields($i)->value); //echo "<br>";
// echo "<br>" ;

$fld[$i] = $rs->Fields($i);
//echo $rs->Fields($i)->name . "\t"; // Afficher le nom de colonnes

} catch(com_exception $e){

}

}

echo "<br>" ;


// Afficher les valeurs des lignes
$tab = array();
$rowcount = 0;
while (!$rs->EOF) {
// ignore error si detect

for ($i=0; $i < $num_columns; $i++) {
try{
$if_error = gettype($rs->Fields($i)->value);
echo utf8_encode($fld[$i]->value) . "\t";
echo $fld[$i]->value . "\t";
$tab[] = explode("\t",utf8_encode($fld[$i]->value)); // Converter vers tableau
} catch(com_exception $e){

}
}


echo "<br>" ;

$rowcount++;
$rs->MoveNext();
}



//echo $tab[2]; //
echo "<br>" ;
echo json_encode($tab); // Converter vers Json



} catch(com_exception $e){
die(utf8_encode($e->getMessage()));
}

$rs->Close();
$conn->Close();

?>
</html>


--
ChMoeZ