Bonjour à tous, je sèche depuis quelques jours sur ce problème.
J'ai une application windev d'un éditeur couplée à une base HFSQL CS les
fichiers sont cryptés avec un mot de passe. Mon but est de faire
quelques requetes sur quelques tables sur la même base via une appli
externe en C#. (Pas besoin d'analyse)
J'utilise le fournisseur oledb PCSOFT.HFSQL via l'assembly .NET Oledb
pour y parvenir. Car le pilote supporte l'accès aux fichiers protégés.
Expliqué dans la doc.
J'ai cette connexionstring :
Provider=PCSoft.HFSQL;Data Source=192.168.1.5:4900;Initial
Catalog=Base;User ID=UserRO;Extended
Properties=\"Language=ISO-8859-1;Password=*:PASSS\";Password=UserRO
L'ouverture de la base se passe bien
Je lance une requête sur une table1 du dossier1 :
OleDbCommand oc = new OleDbCommand("Select * from \"Dossier1\\Table1\",
connect);
OleDbDataReader or = oc.ExecuteReader();
Il me retourne l'erreur : Aucune analyse ouverte et fichier pas décrit
(70114)
La logique Windev aurait voulu un HDeclareExterne() mais je ne sais pas
comment faire passer ça, C# se contente à priori d'envoyer des requetes
ou des instructions SQL (executeReader ou ExecuteNonQuery).
Pour aller plus loin j'ai fait d'autres tests
- avec une copie non cryptée de la même base, les tables sont listées
dans l'explorateur de serveur. Les \ des chemin des fichiers (tables)
sont remplacés par des _.. Il suffit d'utiliser ces noms dans les
requêtes. Ex :
select * from Dossier1_TAble1
-Avec un accès HFSQL Classic direct dans le dossier1 de table1 :
Provider=PCSoft.HFSQL;Initial
Catalog=\\192.168.1.5\Base\Dossier1;Extended
Properties=""Language=ISO-8859-1;Password=*:PASS; """;
ça fonctionne aussi avec la requête "Select * from TAble1" (on omet
Dossier1)
Mon but est de pouvoir faire des requetes via la première méthode. Si
quelqu'un à une idée.
MERCI !