|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 28 ![]() |
Bonjour,
Suite à une migration de sybase ASE sur 2 environnements différents un problème se pose sur le raiserror. déja la différence existant entre ces deux environnements c'est que l'un est en français et l'autre en us_english. lorsque j'insert un message dans sysusermessages dans la version en français le language_ID est 1 et lorsque je le fais sur le US_english, le language_ID est à null. Cela me generais pas si sur l'environnement en français cela ne ferait pas planter mon appli. En effet sur certains postes lorsque je déclenche le message avec un raiserror, il me dit que le message n'existe pas alors que sur d'autres postes cela fonctionne. D'où peut provenir ce problème ? Merci, cordialement. |
|
|
00
|
|
|
#2 |
![]() ![]() |
A priori cela vient de la langue configurée par défaut pour le login. Je n'ai pas beaucoup joué avec les langues sous ASE, mais je suspecte qu'avoir le langid à NULL dans sysusermessages n'est probablement pas idéal.
Je vais jeter un coup d'oeil à la doc (et sur un serveur de test) - je devrais avoir quelques infos complémentaires plus tard aujourd'hui. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#3 | ||
![]() ![]() |
Je viens de faire un petit test, et pour moi le comportement est cohérent:
Code :
dans une session où cela ne marche pas ? Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
||
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 28 ![]() |
Merci pour tes réponses.
Je vais tester immédiatement la requete que tu m'a donné. Il semblerait qu'il y ait encore un problème dû à cette différence de langue sur les champs datetime. Je m'explique quand j'insert dans un champs datetime avec pour valeur "20060706" sur certain poste pas de message d'erreur tous est OK et sur d'autres, j'ai un message d'erreur me disant qu'il ne peut insérer ce type de valeur. Il faut savoir que j'utilise sql advantage. Le problème pourrait venir du client alors dans ce cas non ?? EDIT: alors voici le resultat de la requete : sur le serveur de dev en anglais : us_english 0 sur le serveur de prod en français : french 1 |
|
|
00
|
|
|
#5 | ||
![]() ![]() |
"20060706" devrait toujours être accepté dans tous les cas, puisque c'est une forme qui n'est pas ambigue.
Par contre 13/07/2006 pourrait poser problème, puisque dans un serveur en langue anglaise le mois est (en général) spécifié en premier (mais cela peut être modifié via SET DATEFORMAT.) Maintenant, tout ceci dépend en principe de la langue définie pour le client (SQL Advantage, p.ex.) - on peut vérifier le positionnement de ces paramètres via Code :
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 28 ![]() |
excuse moi de ma faute. C'est bien en utilisant le type date avec les "/" que ça fonctionne pas.
Je regarde tout de suite pour la requete que tu m'as donné. Sinon y'a t'il un moyen de changer ce paramètre de langue dans le client ??? (je n'ai pas trouvé dans les préférence). EDIT : alors après des tests sur différents postes, voici le résultat obtenue : Sur les poste sur lesquels la requête ne fonctionne plus ça me donne : serveur anglais : mdy serveur français : dmy Sur les poste sur lesquels la requête fonctionne toujours ça me donne : serveur anglais : mdy serveur français : mdy existe t'il un moyen d'interagir avec ces valeurs ??? |
|
|
00
|
|
|
#7 |
![]() ![]() |
On peut positionner ce paramètre via
Ce paramètre se positionne aussi par défaut si l'environnement du client est dans une langue particulière, où si le compte utilisateur est configuré pour utiliser une langue particulière. Je suppose que les postes clients sont en Windows. Est-ce qu'il sont localisés en français ? Est-ce que l'installation du code Sybase est la même sur tous les postes? Il y a aussi un fichier de config de "open client" (en principe $SYBASE/OCS-12_5/config/ocs.cfg, mais il est peut-être ailleur sous Windows) qui peut être utilisé pour positionner des valeurs d'options de connexions par défaut. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 28 ![]() |
Bon allez je rajoute un petit épisode à cette série :p.
Alors j'ai bien trouver un fichier OCS mais il s'apelle osc.dat sous windows. Pour tous ce qui est langage, datetype conversion etc tous est avec le parametre par défaut. J'ai lu dans ce meme fichier que lorsque l'option par défaut est choisi, ce fichier un fichier appellé locale.dat. Alors ce que j'ai fait c'est que j'ai comparé le ocs.dat et le locales.dat ils sont en tous points identique sur tous les postes. J'ai vérifié les options de région sous windows et pareil ils sont en tous points identiques. Alors d'où peut venir le fait que sur certains poste ça fonctionne alors que sur d'autre non ?? Sinon ce que je ferai c'est que je migrerai la version anglaise en français (d'ailleur aurais tu un tuto ou quelques choses pour le faire) et je mettrais dans les client la valeur français par défaut. Merci encore de ton aide |
|
|
00
|
|
|
#9 |
![]() ![]() |
Est-ce que le "default language" des utilisateurs (dans syslogins - vérification via sp_displaylogin) est le même pour tout tes utilisateurs ?
Sinon - pour changer le language par défaut du serveur je pense qu'il faut passer par l'utilitaire langinstall (note que je n'ai jamais fait cette procédure), et les procs sp_addlanguage et sp_modifylogin. Je ne suis pas sûr de comment on fait pour que le nouveau language soit le language par défaut de tous les utilisateurs (update massif de syslogins ?) Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 28 ![]() |
Pour chacun de ces potes le Login mdp et le même car cette environnement est un environnement de dev donc je n'ai pas l'utilité de créer plusieurs logins différents.
mais ç m'embete de ne pas comprendre pourquoi lorsque je fait sur un poste select(convert(datetime,"12/31/2006")) ça fonctionne et sur un autre non. |
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : novembre 2006 Messages : 28 ![]() |
Rebonjour,
Désolé de relancer le sujet mais je viens de revenir de vacance est on m'a demandé d'approfondir sur le sujet. Suite à une analyse il s'avère que la fonction convert peut recevoir un parametre appellée style ce qui donne la commande suivante si je veux que le resultat s'affiche correctement pour mon convert : select(convert(datetime,"12/31/2006"),103) avec cela je résoud une aprtie de mes problèmes par contre je n'arrive toujour pas à identifier pour quoi sur certain poste le select(convert(datetime,"12/31/2006")) fonctionne correctement alors que sur d'autres non. Quelqu'un aurait-il une idée d'un fichier que je n'aurai pas vu et donc pas vérifié ???? Merci encore pour votre aide. |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : juin 2007 Messages : 1 056 ![]() |
c'est vraiment lié à ta config client sur le PC :
il faut que ton client Sybase soit configuré pour utiliser la langue adéquate. Execute l'utilitaire Ocoscfg.exe (Sybase Openclient/Openserver utility) pour positionner le bon language. Prends comme modèle un PC pour lequel ça fonctionne. Tu devrais voir des variables du genre qu'il faut correctement positionner : LANG=enu (ou fra) ou la variable LC_ALL=enu (ou fra) Quel type d'application ? Client/serveur ?
__________________
Emmanuel T. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com