Wir haben eine Datenbankanwendung, die seit Monaten läuft, dann hat es plötzlich Fehler gegeben.SQL-Server mit deutschen Ländereinstellungen
Ich bemerkte eine Datetime Float Berechnung Ausnahme, die mit dem Wert 0,05 verglichen wurde. Ich bemerkte auch, dass Daten, die in unsere XML-Protokolldatei geschrieben wurden, im Format d.mm.yy waren.
Offensichtlich ist der Dezimaloperator ',' und das Datumstrennzeichen ist '.'.
Die Anwendung wurde ursprünglich mit den englischen regionalen Einstellungen in Großbritannien installiert. Ich überprüfte die regionalen Einstellungen, die noch britisches Englisch waren.
Ich bemerkte in der Datenbank Verbindungszeichenfolge, der Host wurde angegeben als "Servername \ Instanz, Portnummer", wo ich erwartete "Servername \ Instanz: PortNumber" für eine normal funktionierende Installation.
Irgendwelche Ideen, wo die regionalen Einstellungen erhalten werden? Könnte es auch sein, dass der Benutzer Apps für die Datenbank oder den Benutzer ausführt, der die Datenbank ausführt?
JD.
SQL Server und die App sind auf der gleichen Box. Ich habe die regionalen Einstellungen überprüft und es wurde auf UK (Englisch) eingestellt. Ich bin mir nicht sicher, wo ich sonst hinschauen sollte. Mit der aktuellen Konfiguration scheint SQL Server unter einem Benutzerkonto ausgeführt zu werden, die App in einem anderen. –
@JD: 1. Ich denke, die App übergibt Zeichenfolgen an SQL Server, keine nativen Datentypen. Wenn dies der Fall ist, müssen Sie sicherstellen, dass der Benutzer für die App in englischer Sprache ist, ungeachtet dessen, was er für Sie oder für den Standard sagt. Wir verwalten verschiedene Gebietsschemata, weil wir Präsentation/Erfassung von SQL-Aufrufen trennen. Wir würden immer "0.05" an unseren Server senden, selbst wenn ein deutscher Benutzer "0,05" eingibt. – gbn
@gbn: Nur das Gebietsschema des Benutzers, der den Client ausführt, überprüft App, es ist in UK (Englisch). Keine Ahnung wohin von hier zu gehen. Alles, was ich weiß, dass es seit Monaten funktionierte, und dann begannen wir, diese Fehler zu bekommen (wie ich schon sagte, schreiben wir auch in eine Logdatei und die Daten begannen mit "." Als Trennzeichen für das Log-Datum-Zeit). –