Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Проблема с немецким MS SQL 2000 (datetime format)
|
|||
|---|---|---|---|
|
#18+
При работе MS-SQL Server 2000 под Win 2000 Server с немецкими настройками даты в связке с одной американской прогой (Visual Manufacturing, далее VM) возникают глюки при работе с datetime. VM шлет запросы, где в качестве условий стоят даты в ANSI-формате, а MSSQL возвращает на это ошибку 242: Bei der Konvertierung eines char-Datentyps in einen datetime-Datentyp liegt der datetime-Wert außerhalb des gültigen Bereichs. Причина понятна - немецкий MS SQL читает сначала день, потом месяц, а VM ему подсовывает в обратном порядке. Причем в запросе на выборку, так что через триггеры проблема не решается. Дата жестко установлена в VM, никаких настроек там нет, поэтому копать надо, ИМХО, со стороны MS SQL. Интуиция подсказывает, что это должно быть что-то простое... Или надо рекомендовать английский дистрибутив MS SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2001, 17:29 |
|
||
|
Проблема с немецким MS SQL 2000 (datetime format)
|
|||
|---|---|---|---|
|
#18+
1. См. в BOL: SET DATEFORMAT 2. Попробуй поиграться с галочкой "Use internatioanl setting" в "Client Network Utilities". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2001, 07:29 |
|
||
|
Проблема с немецким MS SQL 2000 (datetime format)
|
|||
|---|---|---|---|
|
#18+
И ещё, попробуйте посмотреть профилировщиком, в каком формате клиент посылает дату. Результат м.б. неожиданным. Так, в 7.0 при установке Use international setting клиент (Win98hec) посылает не "21.10.2000", как, видимо, ожидается, а "21 Окт 2000" (именно по-русски)!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2001, 09:22 |
|
||
|
Проблема с немецким MS SQL 2000 (datetime format)
|
|||
|---|---|---|---|
|
#18+
Спасибо! Через Profiler удалось отловить следуещее: SELECT R.STATUS, ISNULL ( R.REQUIRED_DATE, CONVERT ( DATETIME, '3999-12-31' ) ) FROM REQUIREMENT R В Query Analyser при его выполнении возникает та же ошибка 242. Зато работает (в QA) так: SET DATEFORMAT mdy SELECT R.STATUS, ISNULL ( R.REQUIRED_DATE, CONVERT ( DATETIME, '3999-12-31' ) ) FROM REQUIREMENT R Чувствую, что решение где-то близко. Можно ли в MSSQL 2000 отследить обращение к таблице и для соответствующего коннекшн установить на лету DATEFORMAT? Или можно где-то вызвать SET DATEFORMAT, и он будет действовать для всех последующих коннекшнов, пока не встретится новый SET DATEFORMAT? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2001, 12:54 |
|
||
|
Проблема с немецким MS SQL 2000 (datetime format)
|
|||
|---|---|---|---|
|
#18+
У меня тоже такое ощущение. И сводится оно к тому, что некорректная дата формируется клиентской прогой... Возможно, нужно установить национальные настройк на компе, где она установлена, в американоподобные, тогда заработает. Ежели же этого делать нельзя из-за другой программы, то можешь горячо поблагодарить разработчиков таких программ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2001, 13:29 |
|
||
|
Проблема с немецким MS SQL 2000 (datetime format)
|
|||
|---|---|---|---|
|
#18+
Приемлемое решение так и не найдено. Можно изменить для пользователя стандартный язык на английский, но это подходит не всем - пользователь может работать с другими базами, где ему нужен немецкий как стандартный. Можно в немецком языке в syslanguages заменить dateformat с dmy на mdy, но опять же другим базам на этом сервере это может не понравиться. ODBC - настройки в данном случае не помогают, т.к. дата передается от клиента в виде строки, а не даты, а сервер уже сам преобразовывает в дату, при этом и происходит ошибка. Подскажите, куда копать, даже если это кажется трудным - у время есть разбираться, и самому интересно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2002, 14:28 |
|
||
|
Проблема с немецким MS SQL 2000 (datetime format)
|
|||
|---|---|---|---|
|
#18+
SELECT CONVERT (DATETIME, '39991231' ) работает правильно при любой установке SET DATEFORMAT IMHO надо обращаться к производителю программы и требовать внесения изменения, если это конечно возможно по вашему лицензионному соглашению. Или хотя бы сообщить им об этом, возможно имеются какие-нибудь патчи/апгрейды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2002, 15:32 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32019914&tid=1824382]: |
0ms |
get settings: |
5ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 368ms |

| 0 / 0 |
