Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1342 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Transformer des bouts de codes vb en fonctions ou procédures sql serve

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Transformer des bouts de codes vb en fonctions ou procédures sql serve

n°1625898
visso
le choix c'est une vie
Posté le 17-10-2007 à 18:53:25  profilanswer
 


Je sais que vous n'avez pas le temps , mais j'ai un petit problème à vous poser , j'ai une fonction écrite en vb 6.0 que j'aimerai transformer en ps ou fonction seleon le cas le plus adapté.
 
J'ai lu l'article qui parlais d'éviter les curseurs , mais je me demande comment faire sans utilisation des curseurs:
Car une fois déja j'avais utiliser les curseurs  mais cela mettait trop de temps avant d'envoyer un résultat.
 
Je me permet de vous mettre ici le code vb que si vous avez le temps ou la patience vs regarderez, sinon ce n'est pas grave .
Je sis entrain d'essayer de le faire moi même petit à petit, mais un coup de mais serai le bien venu.
C'est une partie de fonction permettant de calculer le cump.
 
Merci pour votre compréhension et votre sollicitude.
Voici le bout de code:
 
Public Function CalculVeille(DateVeille As Date, Optional ArticleDeDebut As String, Optional ArticleDeFin As String) As Boolean
 
Dim DateFinVeille As Date
CalculVeille = False
 
 
ActiveBase.Execute "DELETE * FROM VALEUR"
If ArticleDeDebut = "" Then
 
ActiveBase.Execute "INSERT INTO VALEUR ( CODEMVT, CODPROD, QTE, PRIXUNIT, MONTANT, DEMANDEUR, DESTINATION, ORIGINE, UTILISATION, NUMOBJET, NUMFABRIC, CODEMACH, CUMP, VALEUR, QTEDISP,TYPEMVT,DATEMVT,CODEFAMIL,CODESFAM,BONENTRESORTIE) SELECT DETAILMOUVEMENTS.CODEMVT, DETAILMOUVEMENTS.CODPROD, DETAILMOUVEMENTS.QTE, DETAILMOUVEMENTS.PRIXUNIT, DETAILMOUVEMENTS.MONTANT, DETAILMOUVEMENTS.DEMANDEUR, DETAILMOUVEMENTS.DESTINATION, DETAILMOUVEMENTS.ORIGINE, DETAILMOUVEMENTS.UTILISATION, DETAILMOUVEMENTS.NUMOBJET, DETAILMOUVEMENTS.NUMFABRIC, DETAILMOUVEMENTS.CODEMACH, DETAILMOUVEMENTS.CUMP, DETAILMOUVEMENTS.VALEUR, DETAILMOUVEMENTS.QTEDISP, MOUVEMENTS.TYPEMVT, MOUVEMENTS.DATEMVT, ARTICLES.CODEFAMIL, ARTICLES.CODESFAM,MOUVEMENTS.BONENTRESORTIE " & _
"FROM (MOUVEMENTS INNER JOIN DETAILMOUVEMENTS ON MOUVEMENTS.CODEMVT = DETAILMOUVEMENTS.CODEMVT) INNER JOIN ARTICLES ON DETAILMOUVEMENTS.CODPROD = ARTICLES.CODPROD " & _
"WHERE (MOUVEMENTS.DATEMVT)>=#" & DebutExo & "# And (MOUVEMENTS.DATEMVT)<#" & DateVeille & "#"
Else
ActiveBase.Execute "INSERT INTO VALEUR ( CODEMVT, CODPROD, QTE, PRIXUNIT, MONTANT, DEMANDEUR, DESTINATION, ORIGINE, UTILISATION, NUMOBJET, NUMFABRIC, CODEMACH, CUMP, VALEUR, QTEDISP,TYPEMVT,DATEMVT,CODEFAMIL,CODESFAM,BONENTRESORTIE) SELECT DETAILMOUVEMENTS.CODEMVT, DETAILMOUVEMENTS.CODPROD, DETAILMOUVEMENTS.QTE, DETAILMOUVEMENTS.PRIXUNIT, DETAILMOUVEMENTS.MONTANT, DETAILMOUVEMENTS.DEMANDEUR, DETAILMOUVEMENTS.DESTINATION, DETAILMOUVEMENTS.ORIGINE, DETAILMOUVEMENTS.UTILISATION, DETAILMOUVEMENTS.NUMOBJET, DETAILMOUVEMENTS.NUMFABRIC, DETAILMOUVEMENTS.CODEMACH, DETAILMOUVEMENTS.CUMP, DETAILMOUVEMENTS.VALEUR, DETAILMOUVEMENTS.QTEDISP, MOUVEMENTS.TYPEMVT, MOUVEMENTS.DATEMVT, ARTICLES.CODEFAMIL, ARTICLES.CODESFAM,MOUVEMENTS.BONENTRESORTIE " & _
"FROM (MOUVEMENTS INNER JOIN DETAILMOUVEMENTS ON MOUVEMENTS.CODEMVT = DETAILMOUVEMENTS.CODEMVT) INNER JOIN ARTICLES ON DETAILMOUVEMENTS.CODPROD = ARTICLES.CODPROD " & _
"WHERE (MOUVEMENTS.DATEMVT)>=#" & DebutExo & "# And (MOUVEMENTS.DATEMVT)<#" & DateVeille & "# and DETAILMOUVEMENTS.CODPROD>='" & ArticleDeDebut & "' and DETAILMOUVEMENTS.CODPROD<='" & ArticleDeFin & "'"
 
End If
 
 
Set RstM_Valeur = New ADODB.Recordset
RstM_Valeur.Open "select * from Valeur order by codprod,datemvt,typemvt", ActiveBase, adOpenDynamic, adLockOptimistic
 
 
If RstM_Valeur.EOF Then 'fo continuer le traitement meme s'il y a pas de mouvements pour la période de veille
End If
First = True
If Not RstM_Valeur.EOF Then RstM_Valeur.MoveFirst: Cdd = RstM_Valeur.Fields("codprod" )
 
While Not RstM_Valeur.EOF
 
While RstM_Valeur.Fields("codprod" ) = Cdd
If Not First Then
If RstM_Valeur.Fields("typemvt" ) = "E" Then
Ccump = (LastQte * LastCump + (RstM_Valeur.Fields("prixunit" ) * RstM_Valeur.Fields("qte" ))) / (LastQte + RstM_Valeur.Fields("qte" ))
LastQte = LastQte + RstM_Valeur.Fields("qte" )
LastCump = Ccump
Else
LastCump = Ccump
LastQte = LastQte - RstM_Valeur.Fields("qte" )
End If
 
RstM_Valeur.Fields("cump" ) = Round(LastCump, 2)
RstM_Valeur.Fields("qtedisp" ) = LastQte
RstM_Valeur.Update
 
End If
If First Then
First = False
 
UneCommande.ActiveConnection = ActiveBase
UneCommande.CommandType = adCmdStoredProc
UneCommande.CommandText = "PS_EXISTENCE_ARTICLE"
Set mParam = New ADODB.Parameter
Set mParam = UneCommande.CreateParameter("@Article", adChar, adParamInput, 9, Trim(Cdd))
UneCommande.Parameters.Append mParam
Set rst = New ADODB.Recordset
Set rst = UneCommande.Execute
 
If Not rst.EOF Then
'If Not RstArticles.EOF Then
'Pui = RstArticles!PRIXUNIT
'Qti = RstArticles!qteIni
Pui = rst!PRIXUNIT
Qti = rst!qteIni
Else
Pui = 0
Qti = 0
End If
If (Qti + RstM_Valeur.Fields("qte" )) <> 0 Then
If RstM_Valeur.Fields("typemvt" ) = "S" Then
Ccump = Pui
LastQte = Qti - RstM_Valeur.Fields("qte" )
Else
Ccump = ((Pui * Qti) + (RstM_Valeur.Fields("prixunit" ) * RstM_Valeur.Fields("qte" ))) / (Qti + RstM_Valeur.Fields("qte" ))
LastQte = Qti + RstM_Valeur.Fields("qte" )
End If
Else
Ccump = 0
End If
LastCump = Ccump
 
RstM_Valeur.Fields("cump" ) = Round(LastCump, 2)
RstM_Valeur.Fields("qtedisp" ) = LastQte
RstM_Valeur.Update
 
 
 
End If
RstM_Valeur.MoveNext: If RstM_Valeur.EOF Then GoTo fin
Wend
First = True
Cdd = RstM_Valeur.Fields("codprod" )
Wend
 
fin:
CalculVeille = True
If ArticleDeDebut = "" Then Call CumulStk1 Else Call CumulStk1(ArticleDeDebut, ArticleDeFin): Exit Function
Call CumGene1
 
End Function

mood
Publicité
Posté le 17-10-2007 à 18:53:25  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Transformer des bouts de codes vb en fonctions ou procédures sql serve

 

Sujets relatifs
Fonctions membres et fonctions classiques en callbackplusieurs fonctions JS dans un onsubmit
SQL Server 2005 et fonctions dans les requêtesretour des codes erreurs
Procédures Stockées et SQL Injection[Script]Parser un fichier C et imprimer les fonctions externes
Je ne trouve pas les fonctions pour connaitre l'etat de la connectionTransformer un fichier swf en png/jpg
Transformer des PDF en SWFTransformer des secondes en jour, heure, etc.
Plus de sujets relatifs à : Transformer des bouts de codes vb en fonctions ou procédures sql serve


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR