Inserer une date au format français dans un serveur Anglais [Résolu]

Signaler
Messages postés
7
Date d'inscription
vendredi 8 mars 2002
Statut
Membre
Dernière intervention
2 février 2006
-
Messages postés
7
Date d'inscription
vendredi 8 mars 2002
Statut
Membre
Dernière intervention
2 février 2006
-
Bonjour à tous,
J'ai un petit souci au niveau de la date! Je pense que je suis pas le seul.

J'ai un serveur SQL en anglais, le problème c'est des que je veux faire un INSERT INTO dans ma base le serveur convertit automatiquement ma date FR en Anglais, portant, je lui envoi bien ma date en FR JJ/MM/AAAA

Qui a une solution !!!

J'ai essayé de faire une recherche sur le forum, mais je crois qu'il a un petit problème.

Merci.

DOF

2 réponses

Messages postés
192
Date d'inscription
dimanche 5 janvier 2003
Statut
Membre
Dernière intervention
9 mars 2007
1
Bonjour,



Je ne suis pas certain d'avoir bien compris ton problème... mais voilà mes réponses :


Un serveur SQL ne stocke pas une date sous la forme JJ/MM/AAAA ou
MM/JJ/AAAA ou n'importe quel autre format, mais sous la forme d'un
nombre. Sous SqlServeur, il me semble que c'est un float et qu'il
représente le nombre de millisecondes écoulées depuis le 1er janvier
1900 (à confirmer).



Ensuite, c'est quand tu installes ton serveur que tu précises comment
tu veux que ton serveur interprète et affiche les chaines de caractères
qui représentent une date. Si tu lui dis que c'est 'MM/JJ/AAAA', il
faut toujours lui donner des chaînes du bon format.



Si tu construis tes requêtes en concaténant des chaînes de caractères,
il n'y a pas de solution, tu dois bien construire ta date. Tu peux
éventuellement pour t'aider à construire ta date voir quel format de
date et utilisé sur ton serveur IIS et sur ton serveur SQL… bref la
galère.



La solution, c'est d'utiliser les objets "command" et "parameter". Regarde le bout de code suivant :



Dim voConnection As SqlConnection

Dim voCommand As SqlCommand

Dim voParaDate As SqlParameter



voConnection = New
SqlConnection(System.Configuration.ConfigurationSettings.AppSettings("moConn.ConnectionString"))



voConnection.Open()



voCommand = New
SqlCommand("insert into t_test (tst_d_date) values (@pDate)",
voConnection)



voParaDate = voCommand.Parameters.Add("@pDate", SqlDbType.DateTime)

voParaDate.Value = DateTime.Today



voCommand.ExecuteNonQuery()



voConnection.Close()



Dans ma requête, je déclare le paramètre @pDate. Ce paramètre, je le
type ensuite comme étant du SqlDbType.DateTime et ensuite je lui
assigne une date (et pas une chaîne de caractères).



J'espère avoir été assez clair. Sinon n'hésite pas à demander des détails.


TiK
http://www.objectif-services.com
http://gadgaill.blogspot.com
Messages postés
7
Date d'inscription
vendredi 8 mars 2002
Statut
Membre
Dernière intervention
2 février 2006

Alors là, je dit parfait! Explication nikel!
Cela fonctionne tres bien

Merci beaucoup pour ton aide !!

DOF