OVH Cloud OVH Cloud

Configurations

4 réponses
Avatar
olivier
Bonjour,

j'ai un serveur sql de dev en français et je souhaite faire touner ma bas en
anglais .

Est-ce possible ?

4 réponses

Avatar
Patrice Scribe
Que veux tu dire par "faire tourner ta base" ?

Si tu veux dire que tu veux développer une appli avec un SQL Server français
mais que cette appli. puisse tourner ensuite sur un SQL Server anglais, il y
généralement deux options :

- insérer les options qui vont bien pour "forcer" le comportement de SQL
Server (par exemple forcer le format français sur un serveur anglais pour
que les dates JJ/MM/AAAA dans les phrases SQL soient reconnues)

- concevoir l'appli pour qu'elle soit insensible au problème de langue (par
exemple en utilisant les dates ISO 'AAAAMMJJ' qui sont toujours reconnues)

Personnellement je préfère la deuxième option.

--

"olivier" a écrit dans le message de
news:%
Bonjour,

j'ai un serveur sql de dev en français et je souhaite faire touner ma bas


en
anglais .

Est-ce possible ?




Avatar
olivier
En faites j'ai un serveur de developpement en anglais et mon serveur de
production a été installé en français ce qui fait les dates sont au mauvais
format.

Mais d'après ce que tu dis le format yyyymmjj est universel, cet à dire que
l'on peu intérroger n'importe quel serveur avec ce format ?

"Patrice Scribe" a écrit dans le message de
news:
Que veux tu dire par "faire tourner ta base" ?

Si tu veux dire que tu veux développer une appli avec un SQL Server


français
mais que cette appli. puisse tourner ensuite sur un SQL Server anglais, il


y
généralement deux options :

- insérer les options qui vont bien pour "forcer" le comportement de SQL
Server (par exemple forcer le format français sur un serveur anglais pour
que les dates JJ/MM/AAAA dans les phrases SQL soient reconnues)

- concevoir l'appli pour qu'elle soit insensible au problème de langue


(par
exemple en utilisant les dates ISO 'AAAAMMJJ' qui sont toujours reconnues)

Personnellement je préfère la deuxième option.

--

"olivier" a écrit dans le message de
news:%
> Bonjour,
>
> j'ai un serveur sql de dev en français et je souhaite faire touner ma


bas
en
> anglais .
>
> Est-ce possible ?
>
>



Avatar
Patrice Scribe
Bonjour,

Pour l'interrogation, le serveur te retourne une date et tu ne devrais donc
pas avoir de pb dans ton appli cliente.

Le problème se pose lorsque'une date est exprimée sous forme de texte
notamment dans les applis qui génèrent le texte des requêtes d'insertion.
Petite démo :

SET DATEFORMAT DMY
SELECT MONTH(CAST('01/02/2003' AS SMALLDATETIME))
SELECT MONTH(CAST('20030201' AS SMALLDATETIME))

SET DATEFORMAT MDY
SELECT MONTH(CAST('01/02/2003' AS SMALLDATETIME))
SELECT MONTH(CAST('20030201' AS SMALLDATETIME))

La première ligne donne 2 puis 1 car la date est interprétée comme le 1er
février en français et le 2 janvier en anglais-américain.
Par contre la deuxième ligne donne toujours deux car le format ISO est
toujours identique quelque soit le réglage du serveur.

Il est également possible de concevoir l'appli de telle sorte que les dates
soient transmises vers le serveur comme dates plutôt que comme "texte" (au
sein d'une requête) en utilisant des procédures stockées ou des requêtes
paramétrées.

Il existe un problème analogue avec le séparateur décimal.

--

"olivier" a écrit dans le message de
news:%
En faites j'ai un serveur de developpement en anglais et mon serveur de
production a été installé en français ce qui fait les dates sont au


mauvais
format.

Mais d'après ce que tu dis le format yyyymmjj est universel, cet à dire


que
l'on peu intérroger n'importe quel serveur avec ce format ?

"Patrice Scribe" a écrit dans le message de
news:
> Que veux tu dire par "faire tourner ta base" ?
>
> Si tu veux dire que tu veux développer une appli avec un SQL Server
français
> mais que cette appli. puisse tourner ensuite sur un SQL Server anglais,


il
y
> généralement deux options :
>
> - insérer les options qui vont bien pour "forcer" le comportement de SQL
> Server (par exemple forcer le format français sur un serveur anglais


pour
> que les dates JJ/MM/AAAA dans les phrases SQL soient reconnues)
>
> - concevoir l'appli pour qu'elle soit insensible au problème de langue
(par
> exemple en utilisant les dates ISO 'AAAAMMJJ' qui sont toujours


reconnues)
>
> Personnellement je préfère la deuxième option.
>
> --
>
> "olivier" a écrit dans le message de
> news:%
> > Bonjour,
> >
> > j'ai un serveur sql de dev en français et je souhaite faire touner ma
bas
> en
> > anglais .
> >
> > Est-ce possible ?
> >
> >
>




Avatar
olivier soudée
voila le probléme.

j'éxcute des procédure stockées sur le serveur e jai justement un probléme
de date car mon format n'est pas reconnu.
Donc d'aprés ce que tu dis, jedois formatter afvec le format iso. 20030929

Merci de ton aide.



"Patrice Scribe" a écrit dans le message de news:

Bonjour,

Pour l'interrogation, le serveur te retourne une date et tu ne devrais


donc
pas avoir de pb dans ton appli cliente.

Le problème se pose lorsque'une date est exprimée sous forme de texte
notamment dans les applis qui génèrent le texte des requêtes d'insertion.
Petite démo :

SET DATEFORMAT DMY
SELECT MONTH(CAST('01/02/2003' AS SMALLDATETIME))
SELECT MONTH(CAST('20030201' AS SMALLDATETIME))

SET DATEFORMAT MDY
SELECT MONTH(CAST('01/02/2003' AS SMALLDATETIME))
SELECT MONTH(CAST('20030201' AS SMALLDATETIME))

La première ligne donne 2 puis 1 car la date est interprétée comme le 1er
février en français et le 2 janvier en anglais-américain.
Par contre la deuxième ligne donne toujours deux car le format ISO est
toujours identique quelque soit le réglage du serveur.

Il est également possible de concevoir l'appli de telle sorte que les


dates
soient transmises vers le serveur comme dates plutôt que comme "texte" (au
sein d'une requête) en utilisant des procédures stockées ou des requêtes
paramétrées.

Il existe un problème analogue avec le séparateur décimal.

--

"olivier" a écrit dans le message de
news:%
> En faites j'ai un serveur de developpement en anglais et mon serveur de
> production a été installé en français ce qui fait les dates sont au
mauvais
> format.
>
> Mais d'après ce que tu dis le format yyyymmjj est universel, cet à dire
que
> l'on peu intérroger n'importe quel serveur avec ce format ?
>
> "Patrice Scribe" a écrit dans le message de
> news:
> > Que veux tu dire par "faire tourner ta base" ?
> >
> > Si tu veux dire que tu veux développer une appli avec un SQL Server
> français
> > mais que cette appli. puisse tourner ensuite sur un SQL Server


anglais,
il
> y
> > généralement deux options :
> >
> > - insérer les options qui vont bien pour "forcer" le comportement de


SQL
> > Server (par exemple forcer le format français sur un serveur anglais
pour
> > que les dates JJ/MM/AAAA dans les phrases SQL soient reconnues)
> >
> > - concevoir l'appli pour qu'elle soit insensible au problème de langue
> (par
> > exemple en utilisant les dates ISO 'AAAAMMJJ' qui sont toujours
reconnues)
> >
> > Personnellement je préfère la deuxième option.
> >
> > --
> >
> > "olivier" a écrit dans le message de
> > news:%
> > > Bonjour,
> > >
> > > j'ai un serveur sql de dev en français et je souhaite faire touner


ma
> bas
> > en
> > > anglais .
> > >
> > > Est-ce possible ?
> > >
> > >
> >
>
>