Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Проблема с определением datetime столбца для MS SQL 2008  [new]
igas
Member

Откуда: Minsk
Сообщений: 175
С++ ODBC
MS SQL Server 2008r2
Появилась проблема с переходом c MSDE на MS SQL Server 2008r2.
Проблема собственно в том, что при использовании SQL_TIMESTAMP столбец байндится как datetime2(0), что не подходит по точности к datetime. Как задать серверу использовать по умолчанию тип datetime.
Может кто сталкивался с такой проблемой?
28 фев 12, 19:22    [12166180]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с определением datetime столбца для MS SQL 2008  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34705
igas,

обычно схема БД задаётся на сервере, в БД, а не клиентским приложением.
У тебя уже есть какая-то колонка в БД на сервере, и ты её получаешь оттуда.
Тебе надо либо в БД поменять тип колонки на соответствующий,
либо в приложении SQL_TIMESTAMP заменить на что-то другое.

Модератор: Тема перенесена из форума "C++".


Сообщение было отредактировано: 28 фев 12, 20:03
28 фев 12, 19:57    [12166311]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с определением datetime столбца для MS SQL 2008  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
BOL
ODBC также определяет тип с точностью до 1 наносекунды. Этот тип используется в существующих приложениях SQL Server, но ожидаемая точность таких приложений составляет только 3 миллисекунды. Новый тип datetime2(3) явно не совместим с существующим типом datetime. Тип datetime2(3) имеет точность одну миллисекунду, а datetime – 1/300 секунды. В ODBC приложения могут определять, какой тип сервера используется с полем дескриптора SQL_DESC_TYPE_NAME. Поэтому существующий тип SQL_TYPE_TIMESTAMP (SQL_TIMESTAMP для приложений ODBC 2.0) может использоваться для обоих типов.
Улучшения обработки даты-времени
Поддержка типов данных для улучшений типов даты-времени ODBC
28 фев 12, 23:43    [12167063]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с определением datetime столбца для MS SQL 2008  [new]
igas
Member

Откуда: Minsk
Сообщений: 175
Mnior,
Так в этом то, и вся проблема. Как SQL Server 2008 сказать что это datetime, a не datetime2.
Или как у Datetime2 сделать точность, такую как у datetime
29 фев 12, 19:04    [12172923]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с определением datetime столбца для MS SQL 2008  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
BOL
приложение определяет, какой тип используется, через указание поля SQL_DESC_TYPE_NAME.
igas
столбец байндится как datetime2(0)
Откуда вы это взяли? Как вы это получили. Скрипт в студию.
29 фев 12, 23:56    [12173818]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с определением datetime столбца для MS SQL 2008  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31983
Mnior
igas
столбец байндится как datetime2(0)
Откуда вы это взяли? Как вы это получили. Скрипт в студию.
И главное, что такое "байндится как datetime2" применительно к сиквелу?

По моему, это вопрос по программированию С++ и ODBC
igas
Как задать серверу использовать по умолчанию тип datetime.
У сервера нет умолчаний для типов данных. Если в таблице поле типа datetime, то оно и будет datetime, и преобразоваться к каким то другим типам не будет.
1 мар 12, 09:18    [12174533]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с определением datetime столбца для MS SQL 2008  [new]
igas
Member

Откуда: Minsk
Сообщений: 175
Всем спасибо, разобрался в проблеме, проблема была собственно в том, что я не задавал Scale для datetime2, вернее его задавал обработчик, не не правильно
1 мар 12, 20:43    [12179643]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить