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

Откуда: Новосибирск
Сообщений: 13
Столкнулся с непонятной проблемой.
База SQL Server 2000.
Есть таблица MOVING_HISTORY (ID_STAFF,ID_PERSON,MOVING_DATE,ID_MOVING_TYPE,REASON)
Со столбцом типа "дата" MOVING_DATE (по умолчанию NULL).
Есть пользователи с SQL-аутентификацией.
Есть роли: full - расширенные права; operator - немного ограниченные права. Но тоже есть права на вставку.

Три сценария:
1) Делаю в нее INSERT:
-под SQL-логином, у которого права на роль "full"
-из веб-приложения на php
Результат: строка вставляется, MOVING_DATE имеет нужное значение

2) Делаю в нее INSERT:
-под SQL-логином, у которого права на роль "operator"
-из веб-приложения на php
Результат: строка вставляется, но MOVING_DATE имеет NULL!

3) Делаю в нее INSERT:
-под SQL-логином, у которого права на роль "operator"
-зайдя напрямую в базу через SQL Management Studio
Результат: строка вставляется, MOVING_DATE имеет нужное значение (!)

Совершенно не пойму, почему во 2м сценарии вставляется NULL вместо даты.
В других таблицах, где используется поле "дата", при тех же условиях вставляется нормально.
Отлавливал через Profiler - текст SQL идет нормальный. Пробовал через триггер посмотреть, что приходит - приходит уже NULL. Как такое может быть? Где теряется дата? Почему теряется только дата, а остальные столбцы забиваются нормальными значениями?
28 май 09, 13:47    [7239463]     Ответить | Цитировать Сообщить модератору
 Re: Теряется дата при INSERT в базу из приложения на PHP  [new]
Glory
Member

Откуда:
Сообщений: 104760
sergejh_hr
С
Отлавливал через Profiler - текст SQL идет нормальный. Пробовал через триггер посмотреть, что приходит - приходит уже NULL. Как такое может быть? Где теряется дата? Почему теряется только дата, а остальные столбцы забиваются нормальными значениями?

"Нормальный" - это какой ? Покажите текст этой команды INSERT
28 май 09, 13:53    [7239507]     Ответить | Цитировать Сообщить модератору
 Re: Теряется дата при INSERT в базу из приложения на PHP  [new]
sergejh_hr
Member

Откуда: Новосибирск
Сообщений: 13
текст запроса:
INSERT INTO MOVING_HISTORY (ID_STAFF,ID_PERSON,MOVING_DATE,ID_MOVING_TYPE,REASON)
VALUES ('31596346-765E-4E0B-9491-59B4E735D0D9','877ECF21-7308-4748-BAAF-9E2228541555',
'28.05.2009','2DF4841D-C272-4422-A101-3FC0E7313A32','test')
28 май 09, 14:57    [7240035]     Ответить | Цитировать Сообщить модератору
 Re: Теряется дата при INSERT в базу из приложения на PHP  [new]
Konst_One
Member

Откуда:
Сообщений: 11515
'28.05.2009'
'20090528'
28 май 09, 14:58    [7240044]     Ответить | Цитировать Сообщить модератору
 Re: Теряется дата при INSERT в базу из приложения на PHP  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
тогда запись вставится вообще не должна. Хотя косяк с датами на лицо.
28 май 09, 15:06    [7240108]     Ответить | Цитировать Сообщить модератору
 Re: Теряется дата при INSERT в базу из приложения на PHP  [new]
sergejh_hr
Member

Откуда: Новосибирск
Сообщений: 13
Я пробовал CAST и CONVERT делать, результат тот же.
Косяк с датами? А почему тогда работает под юзером с расширенными правами?
28 май 09, 17:53    [7241362]     Ответить | Цитировать Сообщить модератору
 Re: Теряется дата при INSERT в базу из приложения на PHP  [new]
sergejh_hr
Member

Откуда: Новосибирск
Сообщений: 13
Спасибо!
Попробовал сначала: '20090528', вставка прошла нормально.
Затем сделал через: CONVERT(DATETIME,'$v_moving_date',104)
теперь работает...
29 май 09, 07:09    [7242416]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить