PROFESSIONAL NEWSGROUPS
WINDEV
,
WEBDEV
and
WINDEV Mobile
Home
|
Recent messages
|
Connect
|
Sign out
|
English
Home
→
WINDEV 2024
→
Connection à une base HFSQL par Visual studio en utilisant ODBC, structures visibles mais données invisibles
Connection à une base HFSQL par Visual studio en utilisant ODBC, structures visibles mais données invisibles
Started by petitcode, Apr., 26 2018 6:40 PM - 2 replies
Connect yourself…
petitcode
#1
Registered member
2 messages
Posted on April, 26 2018 - 6:40 PM
Bonjour,
Je développe un petit outils sous Visual studio pour accéder à une base HFSQL, mais je n'arrive pas à récupérer les donnèes uniquement les structures des tables (noms des champs) ???
Comme ca ne fonctionne pas j'ai utilisé le programme d'exemple donné sur votre site comme ca :
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.Odbc;
namespace ConsoleApplication1ODBCSQL
{
class Sample
{
public static void Main()
{
try
{
// Connexion en utilisant un DSN
// MaBaseODBC est une source de données ODBC définie avec odbcad32
// OdbcConnection nwindConn = new OdbcConnection("DSN=MaBaseODBC");
// Connexion en passant directement les paramètres de connexion
// ANA=
// REP=
// OdbcConnection HFSQLConnection = new OdbcConnection("Driver={HFSQL}; ANA=xxxxx.wdd; REP= Z:xxx;
uid = Admin; integritycheck = 0;");
OdbcConnection HFSQLConnection = new OdbcConnection("DSN=ODBCname");
// Ouverture de la connexion
HFSQLConnection.Open();
// Requête à exécuter sur la base de données
OdbcCommand MaRequete = new OdbcCommand("SELECT xxxx FROM yyyy", HFSQLConnection);
Console.WriteLine("Requete executée.");
// Exécution de la requête
OdbcDataReader MesDonnees = MaRequete.ExecuteReader();
// Parcours du résultat de la requête
while (MesDonnees.Read())
{
Console.WriteLine("\t{0}\t{1}", MesDonnees.GetInt32(0), MesDonnees.GetString(1));
}
MesDonnees.Close();
HFSQLConnection.Close();
}
catch (OdbcException eExcpt)
{
// Affichage des erreurs
Console.WriteLine("Source = " + eExcpt.Source);
Console.WriteLine("Message = " + eExcpt.Message);
}
// pause avant de sortir
Console.ReadLine();
}
}
}
Que ca soit par la connexion client serveur ou classic et en utilisant directement la chaîne DSN client/serveur ou classic .
La requête s’exécute puisque j'obtiens bien le message que j'ai inséré et aucune erreur s'affiche mais aucun résultat n’apparaît dans la console.
D'autre part j'avais au départ utilisé l'explorateur de serveur de Visual Studio et j'accède bien à la base et je n'arrive à visualisé que les structures mais à aucun moment les données ??
Je suis sous Windows 10 PRO le serveur est sous Windows Serveur 2012 et un serveur mirror sous Windows 8 Pro (problèmes identique en accès sur les 2 serveurs).
La base est bien utilisable avec le centre de contrôle HFSQL et l'analyse est correct.
La configuration d'ODBC32 me parait conforme notamment puisque je peux consulter les structures de la base sous visual studio.
Je n'ai pas configurer de base par ODBC64 ???
Est ce que quelqu'un aurait une solution pour ce problème ?
Merci d'avance.
Report
0
0
Christophe
#2
Registered member
940 messages
Popularité : +66 (68 votes)
Posted on April, 27 2018 - 1:46 PM
bonjour,
alors perso tout fonctionne chez moi avec votre code, cependant, vous obtenez votre message "Requete executée." mais il est mal placé, votre requête n'a pas encore été exécutée.
C'est le ExecuteReader() qui lance la requête.
J'ai testé avec un ODBC 32, et une DSN Système vers un serveur HFSQL C/S.
Si vous n'avez pas défini de login et mot de passe dans votre DSN il faut les passer en paramètres, avec UID et PWD
OdbcConnection HFSQLConnection = new OdbcConnection("DSN=ODBCname;UID=login;PWD=password");
Pour l'ODBC 64 çà dépend de votre projet, si vous Visual Studio vous faites un test avec 'Any CPU' c'est que vous êtes en 32bits normalement.
si vous avez x64 c'est que vous êtes en 64Bits.
Report
0
0
petitcode
#3
Registered member
2 messages
Posted on April, 28 2018 - 9:46 AM
Bonjour,
Merci pour votre réponse
Oups effectivement il vaut mieux placer le message "Requete executée." après ExecuteReader() , quand on veux faire vite on fait des erreurs
Donc j'avais bien spécifié les UID et PWD
Pour le projet visual studio j'ai testé en AnyCPU et X86 ou X64 mais toujours le même résultat.
Par contre j'ai omis de préciser que lorsque je défini dans ODBC32 une connexion Client serveur avec le driver HFSQL j'obtiens l'erreur S1000
Cela ne ce produit pas en définissant une connexion Classic qui elle me retourne bien les entêtes des champs mais pas les donnèes !!!!
Le driver HFSQL ODBC32 est en version 20.00.09.00 !!!
Report
0
0
→ Go back to WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (earlier versions)
WEBDEV (earlier versions)
WINDEV Mobile (earlier versions)
Reports & Queries
Off-topic
Tools
Français
English
Español
Portuguesa
Close this window
Search type
Only topics
All the messages
Search period
Any time
Past hour
Past 24 hours
Past week
Past month
Past year
Cancel
Preview of your message
Adding an image
Import an image from a URL
Send an image from a file of your disk
Drop a file or click "Browse..."
or
Cancel
0%
WLanguage
SQL
XML, HTML
JAVA, Javascript
Text