ricodeluxe91
Messages postés7Date d'inscriptionvendredi 8 mars 2002StatutMembreDernière intervention 2 février 2006
-
10 oct. 2005 à 08:45
ricodeluxe91
Messages postés7Date d'inscriptionvendredi 8 mars 2002StatutMembreDernière intervention 2 février 2006
-
10 oct. 2005 à 12:29
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.
tikrimi
Messages postés192Date d'inscriptiondimanche 5 janvier 2003StatutMembreDernière intervention 9 mars 20071 10 oct. 2005 à 09:54
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)
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.