OVH Cloud OVH Cloud

pb entre , et . dans sql

7 réponses
Avatar
Rahan
Salut a tous

je doit mettre a jour ma base sql server via une cmd du
type parametree
le pb c que je recupere d un datagrid une zone '12,25'
et qu il ne me fait pas la maj sauf si je lui dis replace
(zone,",",".") et ca commence a me prendre la tete
pourtant je cast avant mais rien y fait (j ai ajouter la
culutre FR ds le webconfig aussi)

code:

sql2 = "update HorairePC set CapNominale=@CapNominale " _
& "where Code=@Code and Type=@Type and
JourDebut=@JourDebut " _
& "and HeureDebut=@HeureDebut and
JourFin=@JourFin " _
& "and HeureFin=@HeureFin"
With cmd.Parameters
.Add("@Code",
SqlDbType.VarChar).Value = cmbPC.SelectedItem.Value
.Add("@Type",
SqlDbType.VarChar).Value = dr("Type")
.Add("@JourDebut",
SqlDbType.DateTime).Value = CDate(dgItem.Cells(0).Text)
.Add("@HeureDebut",
SqlDbType.Float).Value = CSng(dgItem.Cells(1).Text)
.Add("@JourFin",
SqlDbType.DateTime).Value = CDate(dgItem.Cells(2).Text)
.Add("@HeureFin",
SqlDbType.Float).Value = CSng(dgItem.Cells(3).Text)
.Add("@CapNominale",
SqlDbType.Float).Value = NvCapa * CSng(dr
("Pourcentage")) / 100
End With

merci

7 réponses

Avatar
karim
Salut j'ai vu ton code et je me serai deja suicider a ta
place :).
d'apres ce que je vois au niveau de ton developpement
c'est pas ca.
deja il faut que tu commence a developper en couche
presentation interface graphique
service
metier
donnee
Pour ce qui est de ta requete tu ne peux pas transtyper ta
variable a ce niveau la.
il est vrai que 12.25 et 12,25 pose des problemes en
francais tu peux utiliser replace au niveau de ta couche
de presentation ou utiliser un controle en java script au
niveau html.
Mais ce probleme est tout a fait gerable.
Je me suis construit dans ma couche donnee
Une classe dbAcces qui vas execute ma requete sql
Une class dbConnection pour realiser la connection a ma
base de donnee
Ma Classe dbAcces dispose de methode de lecture, Ecriture,
MajTransaction couplée a mon gestionnaire d'erreur
Tu ne travaille plus qu'avec ta requete sql.
Pour ce qui est des procedure stockee contrairement a la
theorie du client serveur 3 niveau, je ne le fais qu'en
dernier recours.
Pourquoi?
apres 1 an de developpement sous c# pour le compte de ma
societe, je me suis rendu compte d'apres les differents
projets qui m'on ete soumis l'utilisation des procedures
stockee exigee 3 a 4 fois plus de temps de developpement
puisque nous sommes en presence de 2 outils de
developpement ,et qu'il y avait un probleme de portabilite
de code des procedures stockees
Si le client change sa base de donnee de sqlserver a
oracle, ou postgress il faut reecrire nos procedures
stockees;
Donc perte de temps, hausse de la facture client, et donc
client mecontent.

De cette façon je peux developper en toute tranqulite.
Puisque j'ai fait le travaille une fois pour toute.
Certe ca a demandé beaucoup de travail de temps,des tests.
C'est la raison pour laquelle je trouve q le c# qui
demande des notions algo objet, est bien meilleur que
vbnet;
Entierement modulaire je me suis construit des briques
d'application.
Avatar
Patrice
Quel est le champ qui pose problème ?

Contente toi de tester avec un simple SELECT @Value et fait une trace
(générateur de profil) pouir voir ce qui reçoit SQL Server. Es-ce que sql2
est déjà affecté à la commande ?

Patrice


--

"Rahan" a écrit dans le message de
news:292301c48692$94f41d70$
Salut a tous

je doit mettre a jour ma base sql server via une cmd du
type parametree
le pb c que je recupere d un datagrid une zone '12,25'
et qu il ne me fait pas la maj sauf si je lui dis replace
(zone,",",".") et ca commence a me prendre la tete
pourtant je cast avant mais rien y fait (j ai ajouter la
culutre FR ds le webconfig aussi)

code:

sql2 = "update HorairePC set CapNominale=@CapNominale " _
& "where Code=@Code and Type=@Type and
JourDebut=@JourDebut " _
& "and HeureDebut=@HeureDebut and
JourFin=@JourFin " _
& "and HeureFin=@HeureFin"
With cmd.Parameters
.Add("@Code",
SqlDbType.VarChar).Value = cmbPC.SelectedItem.Value
.Add("@Type",
SqlDbType.VarChar).Value = dr("Type")
.Add("@JourDebut",
SqlDbType.DateTime).Value = CDate(dgItem.Cells(0).Text)
.Add("@HeureDebut",
SqlDbType.Float).Value = CSng(dgItem.Cells(1).Text)
.Add("@JourFin",
SqlDbType.DateTime).Value = CDate(dgItem.Cells(2).Text)
.Add("@HeureFin",
SqlDbType.Float).Value = CSng(dgItem.Cells(3).Text)
.Add("@CapNominale",
SqlDbType.Float).Value = NvCapa * CSng(dr
("Pourcentage")) / 100
End With

merci


Avatar
Rahan
c etait les champs csng(....) qui posait pb !!

j ai enleve ces cast de l expression et la ca marche !!
en fait il veut un type string j ai l impression

A+


-----Message d'origine-----
Quel est le champ qui pose problème ?

Contente toi de tester avec un simple SELECT @Value et


fait une trace
(générateur de profil) pouir voir ce qui reçoit SQL


Server. Es-ce que sql2
est déjà affecté à la commande ?

Patrice


--

"Rahan" a écrit


dans le message de
news:292301c48692$94f41d70$
Salut a tous

je doit mettre a jour ma base sql server via une cmd du
type parametree
le pb c que je recupere d un datagrid une zone '12,25'
et qu il ne me fait pas la maj sauf si je lui dis




replace
(zone,",",".") et ca commence a me prendre la tete
pourtant je cast avant mais rien y fait (j ai ajouter




la
culutre FR ds le webconfig aussi)

code:

sql2 = "update HorairePC set




CapNominale=@CapNominale " _
& "where Code=@Code and Type=@Type and
JourDebut=@JourDebut " _
& "and HeureDebut=@HeureDebut and
JourFin=@JourFin " _
& "and HeureFin=@HeureFin"
With cmd.Parameters
.Add("@Code",
SqlDbType.VarChar).Value = cmbPC.SelectedItem.Value
.Add("@Type",
SqlDbType.VarChar).Value = dr("Type")
.Add("@JourDebut",
SqlDbType.DateTime).Value = CDate(dgItem.Cells(0).Text)
.Add("@HeureDebut",
SqlDbType.Float).Value = CSng(dgItem.Cells(1).Text)
.Add("@JourFin",
SqlDbType.DateTime).Value = CDate(dgItem.Cells(2).Text)
.Add("@HeureFin",
SqlDbType.Float).Value = CSng(dgItem.Cells(3).Text)
.Add("@CapNominale",
SqlDbType.Float).Value = NvCapa * CSng(dr
("Pourcentage")) / 100
End With

merci




.



Avatar
Michel Thiffault
> Pour ce qui est des procedure stockee contrairement a la
theorie du client serveur 3 niveau, je ne le fais qu'en
dernier recours.
Pourquoi?
apres 1 an de developpement sous c# pour le compte de ma
societe, je me suis rendu compte d'apres les differents
projets qui m'on ete soumis l'utilisation des procedures
stockee exigee 3 a 4 fois plus de temps de developpement
puisque nous sommes en presence de 2 outils de
developpement ,et qu'il y avait un probleme de portabilite
de code des procedures stockees
Si le client change sa base de donnee de sqlserver a
oracle, ou postgress il faut reecrire nos procedures
stockees;
Donc perte de temps, hausse de la facture client, et donc
client mecontent.



Clien mécontent? Le client est mécontent d'avoir des résultats plus
rapidement (beaucoup plus rapidement si celui qui fait ses procédures
stockées sait vraiment comment en faire)? Disons simplement que les
procédures stockées nous ont permis d'économiser l'achat d'au moins un SQL
Server (un vrai, pas des clônes, des bêtes à 60000$). Ces mêmes procédures
stockées ont accéléré les recherches de pièces dans notre inventaire de
façon tellement drastique (les résultats sont passés d'environ 6 secondes à
moins d'une demi-seconde).

Oui, on perd la portabilité. Pas la fin du monde, de nos jours je vois
beaucoup de différentes bases de données qui sont intégrées ensemble grâce à
des services Web ou des produits de type BizTalk ou WebMethods. C'est tout
de même plus courant qu'un remplacement drastique de BD.

Je ne dis pas qu'il faut tout mettre en procédures stockées, mais le gain de
performance est tellement grand et la productivité des utilisateurs
tellement améliorée que je ne vois pas pourquoi s'en passer.
Avatar
Patrice Manac'h
Bonjour,

autre point: cela évite les problèmes d'injection de code SQL...

Cordialement,

P. Manac'h
MCS France

"Michel Thiffault" a écrit dans le message de news:
OiKZ8$

Pour ce qui est des procedure stockee contrairement a la
theorie du client serveur 3 niveau, je ne le fais qu'en
dernier recours.
Pourquoi?
apres 1 an de developpement sous c# pour le compte de ma
societe, je me suis rendu compte d'apres les differents
projets qui m'on ete soumis l'utilisation des procedures
stockee exigee 3 a 4 fois plus de temps de developpement
puisque nous sommes en presence de 2 outils de
developpement ,et qu'il y avait un probleme de portabilite
de code des procedures stockees
Si le client change sa base de donnee de sqlserver a
oracle, ou postgress il faut reecrire nos procedures
stockees;
Donc perte de temps, hausse de la facture client, et donc
client mecontent.



Clien mécontent? Le client est mécontent d'avoir des résultats plus
rapidement (beaucoup plus rapidement si celui qui fait ses procédures
stockées sait vraiment comment en faire)? Disons simplement que les
procédures stockées nous ont permis d'économiser l'achat d'au moins un SQL
Server (un vrai, pas des clônes, des bêtes à 60000$). Ces mêmes procédures
stockées ont accéléré les recherches de pièces dans notre inventaire de
façon tellement drastique (les résultats sont passés d'environ 6 secondes
à
moins d'une demi-seconde).

Oui, on perd la portabilité. Pas la fin du monde, de nos jours je vois
beaucoup de différentes bases de données qui sont intégrées ensemble grâce
à
des services Web ou des produits de type BizTalk ou WebMethods. C'est tout
de même plus courant qu'un remplacement drastique de BD.

Je ne dis pas qu'il faut tout mettre en procédures stockées, mais le gain
de
performance est tellement grand et la productivité des utilisateurs
tellement améliorée que je ne vois pas pourquoi s'en passer.




Avatar
Michel Thiffault
J'aurais dû mentionner ce point! Quel oubli de ma part.


Patrice Manac'h wrote:
Bonjour,

autre point: cela évite les problèmes d'injection de code SQL...

Cordialement,

P. Manac'h
MCS France

"Michel Thiffault" a écrit dans le message de
news: OiKZ8$

Pour ce qui est des procedure stockee contrairement a la
theorie du client serveur 3 niveau, je ne le fais qu'en
dernier recours.
Pourquoi?
apres 1 an de developpement sous c# pour le compte de ma
societe, je me suis rendu compte d'apres les differents
projets qui m'on ete soumis l'utilisation des procedures
stockee exigee 3 a 4 fois plus de temps de developpement
puisque nous sommes en presence de 2 outils de
developpement ,et qu'il y avait un probleme de portabilite
de code des procedures stockees
Si le client change sa base de donnee de sqlserver a
oracle, ou postgress il faut reecrire nos procedures
stockees;
Donc perte de temps, hausse de la facture client, et donc
client mecontent.



Clien mécontent? Le client est mécontent d'avoir des résultats plus
rapidement (beaucoup plus rapidement si celui qui fait ses procédures
stockées sait vraiment comment en faire)? Disons simplement que les
procédures stockées nous ont permis d'économiser l'achat d'au moins
un SQL Server (un vrai, pas des clônes, des bêtes à 60000$). Ces
mêmes procédures stockées ont accéléré les recherches de pièces dans
notre inventaire de façon tellement drastique (les résultats sont
passés d'environ 6 secondes à
moins d'une demi-seconde).

Oui, on perd la portabilité. Pas la fin du monde, de nos jours je
vois beaucoup de différentes bases de données qui sont intégrées
ensemble grâce à
des services Web ou des produits de type BizTalk ou WebMethods.
C'est tout de même plus courant qu'un remplacement drastique de BD.

Je ne dis pas qu'il faut tout mettre en procédures stockées, mais le
gain de
performance est tellement grand et la productivité des utilisateurs
tellement améliorée que je ne vois pas pourquoi s'en passer.




Avatar
karim
Je crois que je me suis mal fait comprendre encore une
fois.
Je n'ai jamais dit que les procedures stockees etaient
inutile et ne servaient a rien!
Comme dans la vie je n'ai pas l'habitude de passer d'un
extreme a l'autre.
Je suis tout a fait d'accord avec toi.
Je le dis simplement lorsque l'on a pas le choix!!!!
En resume lorsque un certain nombre de contrainte nous
empeche de le faire.
Question de bons sens.
Je suis sure que beaucoup de developpeur ne partage pas
mon avis.
Mais rien n'est ecris dans le marbre.
En developpement le contexte est primordial.
Personnellement lorsque je developpe, je dois obeir a un
certains type de cahier des charges.
Mais bon je pourrais continuer.
A+