OleDbDataAdapter.Fill sur un serveur Sybase 12.5

cs_ckankonvahou Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 29 novembre 2005 - 28 nov. 2005 à 14:29
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 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();

while(lecteur.Read())
textBox1.Text += lecteur[0].ToString()+" - ";

- celui qui ne marche pas

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)

Merci

15 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
28 nov. 2005 à 14:41
la requête strsql retourne combien de lignes ?

Sébastien FERRAND
[MVP C#]
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
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.

Sébastien FERRAND
[MVP C#]
0
cs_ckankonvahou Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 29 novembre 2005
28 nov. 2005 à 14:46
7, c'est pas énorme ?!!
0
cs_ckankonvahou Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 29 novembre 2005
28 nov. 2005 à 14:52
Ouais... ben j'ai enlevé le conn.Open() - et le conn.Close() -, eh ben ça me résout pas mon problème
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
28 nov. 2005 à 14:57
et à quoi ressemble la requête ?

Sébastien FERRAND
[MVP C#]
0
cs_ckankonvahou Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 29 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
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
28 nov. 2005 à 15:28
C'est bizarre parce que ca devrait marcher sans probleme !
Au niveau du sgbd, ca t'ecrit pas une erreur dans un log, ou un truc dans le genre ?

Mx
0
cs_ckankonvahou Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 29 novembre 2005
28 nov. 2005 à 15:33
Non, ça passe sans pb...
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
28 nov. 2005 à 15:36
je sèche là

Sébastien FERRAND
[MVP C#]
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
28 nov. 2005 à 15:49
Et tu peux vraiment pas passer par odbc ?

Mx
0
cs_ckankonvahou Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 29 novembre 2005
28 nov. 2005 à 15:58
lol

si, mais alors là le serpent se mord la queue : regarde mon premier post

PS : je n'ai pas de pb en passant par odbc, mais la politique de ma boîte est de passer par oledb
0
cs_ckankonvahou Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 29 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 ?

Merci
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
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.

Sébastien FERRAND
[MVP C#]
0
cs_ckankonvahou Messages postés 12 Date d'inscription mercredi 16 février 2005 Statut Membre Dernière intervention 29 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)
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
29 nov. 2005 à 13:43
je sais que le designer fait des choses figées, mais en comparant avec ton code tu pourrais voir d'où vient ton erreur.

enfin, il est faisable d'utiliser une procédure dans le cas de choix utilisateur, il suffit simplement de passer les bons paramètres.

Sébastien FERRAND
[MVP C#]
0
Rejoignez-nous