cs_ckankonvahou
Messages postés12Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention29 novembre 2005
-
28 nov. 2005 à 14:29
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 2014
-
29 nov. 2005 à 13:43
Bonjour,
je suis en train de développer une appli qui accède à un serveur Sybase12.5, et je m'aperçois que je ne sais pas utiliser le OleDbDataAdapter. En fait je l'ai développée en passant par odbc, donc utilisant OdbcDataAdapter, et là pas de problème, et c'est le passage par OleDb qui m'en pose.
Donc mon problème : quand je passe par OleDbDataReader, j'arrive à lire des données (ce qui prouve la validité de ma connexion), sauf que je ferme explicitement ni le reader ni la connexion sous peine de blocage - comme s'il y avait une boucle infinie, et quand j'essaie un OleDbDataAdapter, le programme bloque "en une boucle infinie".
Je mets ci-dessous mes deux bouts de code :
- celui qui marche
OleDbConnection conn =
new OleDbConnection(source);
conn.Open();
OleDbCommand cmd =
new OleDbCommand(strsql,conn);
OleDbDataReader lecteur = cmd.ExecuteReader();
OleDbConnection conn =
new OleDbConnection(source);
conn.Open();
OleDbDataAdapter cmd =
new OleDbDataAdapter(strsql, conn);
DataSet ds =
new DataSet();
cmd.Fill(ds,"Aide");
// et là le programme ne sort pas de cette ligne
Voilà. Si qqun peut m'expliquer d'où vient mon problème (et m'aider à le résoudre)
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 28 nov. 2005 à 14:43
je n'avais pas fait attention... mais dans le second code... le conn.Open() ne sert à rien... le DataAdapter se charge lui-même de l'ouverture et de la fermeture de la connexion.
cs_ckankonvahou
Messages postés12Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention29 novembre 2005 28 nov. 2005 à 15:17
ah ouais, excuz'
"select aide_titre from aide", sachant que aide_titre et aide existent dans ma bdd. De toute façon, avec un OleDbDataReader, il me renvoie bien les sept lignes attendues
cs_ckankonvahou
Messages postés12Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention29 novembre 2005 29 nov. 2005 à 11:10
Re-bonjour,
Après investigations, si j'envoie une commande avec une procédure stockée (Cmd.CommandType=CommandType.StoredProcedure, Cmd.CommandText="maProcStock"), ca passe bien. Par contre avec du SQL direct (Cmd.CommandType=CommandType.Text, Cmd.CommandText="select mesChamps from maTable"), ça part en vrille.
J'en déduis que doit y'avoi une stratégie de sécurité du .Net framework (je sais qu'il rigole pas trop avec ça). Donc ma question devient : est-ce que qqun sait comment on règle la sécurité d'un OleDb ?
sebmafate
Messages postés4936Date d'inscriptionlundi 17 février 2003StatutMembreDernière intervention14 février 201437 29 nov. 2005 à 11:17
y a aucune raison qui fasse que la procédure fonctionne alors que la requête non.
As-tu essayé de créer le dataadapter en passant par le designer.
Enfin, d'expérience, il est préférable d'utiliser des procédures stockées plutot que des requêtes.
D'une part, c'est plus facile à mettre à jour, d'autre part, c'est plus facile de gérer la sécurité du coté de la base de données.
cs_ckankonvahou
Messages postés12Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention29 novembre 2005 29 nov. 2005 à 12:04
Le designer fait un truc trop figé, et j'avais aussi opté pour la solution de n'avoir que des PS, mais des fois ça me semble difficile (si je construis la requête lors de l'exécution en fonction des choix de l'utilisateur)