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

Откуда:
Сообщений: 6
Здравствуйте, возникла такая проблема:
из хранимой процедуры получается значение ,которое записывается в поле типа varchar . при записи обрезаются ведущие нули. Как записать с ведущими нулями? изменение типа поля не подходит.
1 апр 13, 09:03    [14119744]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
Гость333
Member

Откуда:
Сообщений: 3683
s0meb0dy,

1) Как вы проверили, что в возвращаемом значении есть ведущие нули?
2) Какой командой происходит запись в поле типа varchar?
3) На какой тип вы могли бы изменить тип поля, и как это могло бы решить проблему обрезания ведущих нулей?
1 апр 13, 09:09    [14119757]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
s0meb0dy
Member

Откуда:
Сообщений: 6
1) вывела полученное значение на экран
2) update
3) text, т.к в данном случае могут приходить как численные значения, так и текстовые
1 апр 13, 09:15    [14119771]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
Гость333
Member

Откуда:
Сообщений: 3683
2) Покажите текст команды update;
3) Не вижу разницы.

Скоре всего, у вас где-то происходит явная или невная конвертация в числовой тип. При этом символьные значения вида '0015' преобразуются в число 15.
1 апр 13, 09:20    [14119781]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
s0meb0dy
Member

Откуда:
Сообщений: 6
update dbo.ClientPasswords set [Password] = @PasswordNew where [Login]=@Login

проблема с Password
1 апр 13, 09:22    [14119785]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
aleks2
Guest
s0meb0dy
update dbo.ClientPasswords set [Password] = @PasswordNew where [Login]=@Login

проблема с Password


И чо, вот так обрежет?
update dbo.ClientPasswords set [Password] =  '0000 херня какая'  where [Login]=@Login
1 апр 13, 09:38    [14119841]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
s0meb0dy
Member

Откуда:
Сообщений: 6
aleks2 ,

так нет,если совместно с текстом- нормально запишет, а если на месте текста будет 002, то запишет как 2
1 апр 13, 09:41    [14119857]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
aleks2
Guest
s0meb0dy
aleks2 ,

так нет,если совместно с текстом- нормально запишет, а если на месте текста будет 002, то запишет как 2


- Все чудесатее и чудесатее - сказала Алиса...

ЗЫ. Ищите триггер.
1 апр 13, 09:42    [14119869]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
s0meb0dy
Member

Откуда:
Сообщений: 6
aleks2,
осознаю абсурдность ситуации. Но триггера нет
1 апр 13, 09:56    [14119934]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
s0meb0dy
aleks2,
осознаю абсурдность ситуации. Но триггера нет
Тогда напрягитесь и выполните, наконец, п.6
Текст процедуры засекречен?
1 апр 13, 09:59    [14119946]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
_djХомяГ
Guest
s0meb0dy
1) вывела полученное значение на экран


1 На экран какого приложения (SSMS,некого клиента)
2 Какой командой
3 Также можно привести пример DDL создания таблицы и оператора update
1 апр 13, 10:03    [14119964]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
покажите, каким образом получаете значение "с ведущими нулями" и каким образом используете его, получая обрезание:))
1 апр 13, 10:03    [14119967]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
s0meb0dy
1) вывела полученное значение на экран
2) update
3) text, т.к в данном случае могут приходить как численные значения, так и текстовые


у вас неявное преобразование в число проиходит перед апдейтом, сравнивайте типы переменных и полей.
1 апр 13, 10:17    [14120026]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
И от типа TEXT пора бы отказаться.
1 апр 13, 10:21    [14120045]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
Гость333
Member

Откуда:
Сообщений: 3683
s0meb0dy
update dbo.ClientPasswords set [Password] = @PasswordNew where [Login]=@Login

Покажите всю предысторию переменной @PasswordNew: с каким типом она объявлена, каким образом ей присваивается значение.
1 апр 13, 10:21    [14120049]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
s0meb0dy
Member

Откуда:
Сообщений: 6
Гость333 ,

ALTER procedure [dbo].[Edit@ClientPassword]
@Login varchar(256),
@PasswordOld varbinary (max),
@PasswordNew varchar(256),
@ClientAddressTemplate varchar(256)
as begin


далее сразу апдейт

update dbo.ClientPasswords set [Password] = @PasswordNew where [Login]=@Login


Поле Password в таблице dbo.ClientPasswords типа varchar.
1 апр 13, 10:29    [14120079]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
попробуйте для отладки написать и проанализировать результат:
update dbo.ClientPasswords set [Password] = @PasswordNew 
  output deleted.[Password] OldPass,@PasswordNew setPass,inserted.[Password] newPass
  where [Login]=@Login
1 апр 13, 10:44    [14120184]     Ответить | Цитировать Сообщить модератору
 Re: Добавление в поле char ведущих нулей  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 33945
Блог
s0meb0dy,

в клиенте, где вызывается эта процедура, прямо перед ее вызовом посмотрите ваш пароль
1 апр 13, 10:59    [14120260]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить