IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Fonction éxecuter que en pas à pas


Sujet :

VB.NET

  1. #21
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut
    j'ai cooriger toutes les erreurs sauf celle sur mes requetes
    que voiçi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     myCommandConstraint.Connection = myConnexion
                                        myCommandConstraint.CommandText = "Select Strat_id1, Strat_id2 from Exclusion_constraints where( Strat_id1=" & ID_strat_datareader.GetValue(0) & " or Strat_id2=" & ID_strat_datareader.GetValue(0) & ");"
    mes datareader sont bien declarer plus haut dans le code, et sont message d'erreur est le suivant :
    Option Strict On interdit les opérandes de type Object pour l'opérateur ' &'
    je vois pas trop comment je peux corriger sa pour avoir un code propre,
    cela dit bien que c'est tjr mieux d'avoir un code propre je ne pense pas que ces erreurs sont celle qui provoque mon probleme principale a savoir le point d'arret pour entrer dans la fonction.

  2. #22
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    GetValue() renvoie un objet de type Object. Il faut que tu le convertisse en String pour pouvoir effectuer la concaténation.

    Je suggère donc un .ToString().

    EDIT :
    Il est néanmoins probable que cela ne règle pas le problème principal... J'avoue ne pas être un expert en la matière. Je me suis formé sur le tas. P-e qu'il y a une option quelque part dans ta config qui dit que sur un certain type d'erreurs, la ligne est sautée (j'ignore totalement si cela existe, je ne fais qu'envisager des possibilités).

    Essaie une fois d'inclure ton code dans un Try...Catch pour voir s'il jette une exception.
    Kropernic

  3. #23
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut
    j'ai corriger toute les erreurs il m'en reste 2 maintenant que voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     If RC_id_constraint.GetValue(0) <> RC_id_datareader.GetValue(0) Then
       cas2 = True
      End If
    le message d'erreur est le suivant :
    Option Strict On n'autorise pas les opérandes de type Object pour l'opérateur ' <>' . Utilisez l'operateur 'Is' pour tester l'identité de l'object

    je dois faire quoi la pour corriger cette erreur?
    et merci Griftou pour tout tes conseils c'est vraiment gentil

  4. #24
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut
    j'ai déjà mis un try cash que voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Try 
    ... code...
    Catch ex As OleDb.OleDbException
                MessageBox.Show(ex.ToString)
    End Try
    il ne concerne que ma connection oledb, je dois mettre quoi pour les erreurs d'autre types??

  5. #25
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Ce message d'erreur signifie que VS ne peut pas utiliser l'opérateur '<>' pour comparer deux variables de type Object. En effet, une variable de type object, ça peut être plein de choses (une string, un integer, un boolean, un type que tu as défini toi-même, etc). De ce fait, VS n'a aucune idée de la manière dont il doit comparer ces deux objets.

    Par contre toi, j'imagine que tu sais très bien à quel type d'objets tu t'attends à faire face (j'imagine ici, de par le nom, qu'il s'agit d'integer). Il te faut donc convertir RC_id_constraint.GetValue(0) en un objet plus "typé". S'il s'agit d'integer, essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CInt(RC_id_constraint.GetValue(0))
    Pareil avec ton autre variable. Pour convertir en string, il y a CStr. En double, CDbl. En booléen, CBool. J'en ai probablement oublié mais j'imagine que tu as compris comment les trouver ;-)
    Kropernic

  6. #26
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Citation Envoyé par djams9 Voir le message
    j'ai déjà mis un try cash que voici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Try 
    ... code...
    Catch ex As OleDb.OleDbException
                MessageBox.Show(ex.ToString)
    End Try
    il ne concerne que ma connection oledb, je dois mettre quoi pour les erreurs d'autre types??
    Tu peux p-e essayer de capturer un type d'erreur plus générique pour capturer un plus grand nombre d'erreur.

    Qqch du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Try
    ...code...
    Catch ex as Exception
                MessageBox.Show(ex.Message)
    End Try
    Kropernic

  7. #27
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut IMPORTANT :plus d'erreur mais toujours le meme pb
    C'est bon j'ai corrigé toute mes erreurs.
    maintenant on peut revenir à mon probléme de depart puisqu'il n'est tjr pas réglé.

    je vois vraiment pas d'ou cela viens, pire encore c'est que je viens de creer une 3eme fonction a peu prés identique, elle dois me retourner un entier, elle est construite exactement de la meme maniere, et pour elle sa marche correctement. je n'est pas a mettre de point d'arret.
    Vraiment étrange tout ca

  8. #28
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Est-il possible de mettre ton projet en pièce jointe s'il n'est pas trop volumineux ?

    Histoire que je puisse tester cela de mon côté. Cela semble quand même assez étrange XD
    Kropernic

  9. #29
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut
    Et bien mon projet VB fait un peu plus de 800ko en Rar et le max autoriser est de 512ko,
    donc je n'arrive pas
    snifff

  10. #30
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Dans ce cas, copie tout le code de la classe qui pose problème. Je ferai du copier/collé dans un dummy project ;-)
    Kropernic

  11. #31
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut Mon code
    ok, je t'ai mis bans le fichier txt tout le code de la classe qui pose probléme, j'ai mis aussi maa BDD, bien que je ne pense pas qu'elle te servira.
    pour indications les lignes ou je dois mettre des points d'arret pour qu'il execute la fonctions sont :
    ligne 67 > sql_LastRI_id = Recuper_Last_RI_id(recup_LastRi_id)
    Ligne 237 > recup_LastRc_id = Recupere_Last_RC_id(sql_LastRC_id)
    voila griftou,
    franchement bien qu'on ai pas encore trouvé je te remercie fortement de m'accorder tous ce temps.
    Fichiers attachés Fichiers attachés

  12. #32
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut nom de fonction mauvaise frappe
    bonjour
    ici qu'est ce que ca veut dire ca dans la sub NewRCs_enreg,quezaco:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     recup_LastRc_id = Recupere_Last_RC_id(sql_LastRC_id)
                sql_rcname = "RC_" + recup_LastRc_id.ToString()
     
                Dim int_G_id As Integer
                Dim recup_last_G_id As Integer
                'd'ou sort cette fonction et elle recupere rien surtout si elle n'existe
                ' pas.Ca va passer gentiment sans aucun avertissement ca. 
                recup_last_G_id = Recuper_Last_G_id(int_G_id)
    Les noms de fonction mal tapes n'envoient aucun avaertissemen quand elle n'existe pas en VB et renvoient n'importe quand la variable contenant la valeur n'a pas ete initialise.
    Avis aux amateurs
    bon code....

    bon code

  13. #33
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut
    tu veux parler de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    'd'ou sort cette fonction et elle recupere rien surtout si elle n'existe
                ' pas.Ca va passer gentiment sans aucun avertissement ca. 
                recup_last_G_id = Recuper_Last_G_id(int_G_id)
    et bien la fonction Recuper_Last_G_id(int_G_id) est une autre fonction du même type que la fonction Recupere_Last_RC_id(sql_LastRC_id).
    bien sur que si qu'elle existe, elle est declarer plus bas

    sauf que la fonction Recuper_Last_G_id(int_G_id) ne me pose aucun probléme alors que la fonction Recupere_Last_RC_id(sql_LastRC_id)
    m'oblige à lui mettre un point d'arret pour etre executé

  14. #34
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut
    allez les gars n'abandonné pas.
    je crois que le pb que je rencontre n'est pas courant, et pour il serait bien de le résoudre.
    pour les derniers arriver qui n'ont pas envie de relire tous les posts, je vous rapel que mon soucis est le suivant:
    ma fonction ne s'éxecute quand je l'apel que quand je lui met un point d'arret.
    Si je ne met pas de point d'arrêt, il n'entre pas dans la fonction, il saute la ligne

  15. #35
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Hello,

    Juste pour signaler que je me repenche sur le sujet aujourd'hui (envie de faire une pause dans mon taff propre^^).

    Pour cela, merci pour le code mais en fait, serait-il possible que tu mettes en pièce jointe, pour ta form1, les fichiers .vb, .Designer.vb et .resx ?

    Si ce n'est pas possible en pièce jointe, envoie moi un mp et je te filerai mon adresse e-mail.

    C'est juste car j'ai vraiment pas le courage d'ajouter tous tes composants d'accès aux données surtout que j'ignore la manière dont tu as config tes datasets par exemple. (perso, je déclare toujours tout dans le code et je n'ai jamais utiliser les composants d'accès de manière visuelle XD)
    Kropernic

  16. #36
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut
    bjr Griftou,
    ok c'est cool, je t'es mis tous les fichier qui a dans le dosser de mon projet, sauf les sous dossier (bin, Myprojects, Obj) pcq sinon c trop gros.
    voila

    sinon oui mes dataset sont fait avec le designer,etant novice j'ai choisi le plus simple ,
    Fichiers attachés Fichiers attachés

  17. #37
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Bon, maintenant j'aurais besoin que tu me dises comment fonctionne ton application histoire que je puisse tester ^^

    Pcq les datagrids c'est joli mais bon... j'en fais quoi? XD

    J'ai bien vu l'event celldoubleclick mais bon...

    Need un mode d'emploi XD
    Kropernic

  18. #38
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut
    ok alors il y a plusieur grid mais ils sont surtout la pour info, du visuel quoi, le seul qui est utiliser c'est le DataGrid_Candidate.
    lorsque que tu double clique sur une case, il selectionne la ligne et execute le prog,
    mon travail en fait c'est de proposer a l'utilisateur les chemins a prendre pour parcourir une MAP. donc le but du prog, c'est de calculé les chemin potentiels et les afficher dans le DataGrid_Candidate.

    Lorsque qu'on choisi une candidate, le prog execute plusieur tache qui sont :
    -Creation d'un Nouveau RC selon un critere (Strat_Generatrice)
    >>>NewRCs_enreg(int_strat_id)
    -Creation d'une nouvelle realisation d'intention
    >>> NewRealizedIntention_enreg()
    - il faut l'ajouter dans le trace Sections_Executed
    >>>> NewExecutedSections_enreg()
    - Enfin appel de la fonction mise a jour de la table candidate pour repproposer les nouvelles candidates à l'utilisateur
    >>> MaJ_Candidate_section()

    Voila une descritpion grossiére de mon prog, n'hesite pas si tu as d'autre question, et merci encore

  19. #39
    Membre à l'essai
    Inscrit en
    Mai 2008
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 52
    Points : 17
    Points
    17
    Par défaut
    La form2 tu peut la supprimer, est ne sert pas a grd chose pour le moment.

    pour t'expliquer un peu pourquoi j'ai créer les fonctions :
    • Public Function Recuper_Last_RI_id(ByVal Last_Ri_id As Integer) As Integer
    • Public Function Recupere_Last_RC_id(ByVal Last_RC_id As Integer) As Integer
    • Public Function Recuper_Last_G_id(ByVal Last_G_id As Integer) As Integer


    En faite lorsque j'execute une candidate je créer un produit et une Realisation d'intention, donc je fais un insert dans chacune des tables de la base. Et je voudrais leur donner un nom a ces nouveau enregistrements. Ne connaissant pas leur ID ( autonumeric) je fais d'abord un insert,
    ensuite via les fonctions Recupere_Last_RI/RC/G_id je recupere le dernier Id de la table (celui que je viens juste de créer,
    et je lui fais un update en ajoutant le nom (pcq le nom c RC_ + le ID, exemple : RC_11).
    donc voila pourquoi c'est fonction existe.

  20. #40
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Je suis en train de tester. C'est vrai que c'est un phénomène super space XD

    Sinon, cela ne résoudra pas ton problème mais cela améliorera un peu ton code.

    Pour tes fonctions, tu passe un integer en paramètre. En fait il ne sert à rien.

    Tu dois passer un paramètre à une fonction uniquement quand t'as fonction à besoin d'une information qui doit venir de l'extérieur.

    Ici en fait, il te suffit de déclarer une variable de type integer dans ta fonction, de lui affecter le résultat de la méthode executeScalar et de retourner cette variable. Mais bon, c'est un autre sujet... je continue à chercher pourquoi ça saute la fonction... c'est super bizarre XD
    Kropernic

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. éxecution du code source pas à pas
    Par guaguanco dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 07/06/2010, 16h05
  2. une fonction recursive que je ne comprend pas
    Par Jcpan dans le forum Langage
    Réponses: 3
    Dernier message: 29/07/2009, 13h34
  3. [Débutant] Fonction surface ya un truc que je pige pas
    Par PaM... dans le forum MATLAB
    Réponses: 6
    Dernier message: 17/02/2009, 10h11
  4. Réponses: 2
    Dernier message: 24/04/2007, 20h04
  5. erreur que j ai pas comprise ds mon pg informix
    Par zineb dans le forum Informix
    Réponses: 2
    Dernier message: 16/07/2003, 13h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo