Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Invalid format specification: '%...'  [new]
temp-for-testing
Member

Откуда:
Сообщений: 384
Добрый день!

Отчего может быть такая ошибка? Возникает при вставке записи.. В триггерах никаких кастов с % нет, но ошибка то возникает, то нет..
19 июн 09, 10:20    [7319089]     Ответить | Цитировать Сообщить модератору
 Re: Invalid format specification: '%...'  [new]
Glory
Member

Откуда:
Сообщений: 104760
И мы увидим команду TSQL, которая генерирует эту ошибку ?
19 июн 09, 10:28    [7319157]     Ответить | Цитировать Сообщить модератору
 Re: Invalid format specification: '%...'  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
> Отчего может быть такая ошибка?

declare @name nvarchar(255)

select @name = 'blah %' 

raiserror(@name, 16, 1)
19 июн 09, 10:31    [7319184]     Ответить | Цитировать Сообщить модератору
 Re: Invalid format specification: '%...'  [new]
temp-for-testing
Member

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

Ошибка возникает при вставке новой записи.. В клиентской программе

ADOQuery.Insert;

// пользователь заполнил необходимые поля

ADOQuery.Post; // --- тут и ошибка
19 июн 09, 10:32    [7319195]     Ответить | Цитировать Сообщить модератору
 Re: Invalid format specification: '%...'  [new]
temp-for-testing
Member

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

ого... т.е. в триггере нельзя вызывать Raiseerror ('Ошибка, Введеный процент не может быть больше 100%')?
19 июн 09, 10:36    [7319220]     Ответить | Цитировать Сообщить модератору
 Re: Invalid format specification: '%...'  [new]
Glory
Member

Откуда:
Сообщений: 104760
temp-for-testing
Glory,

Ошибка возникает при вставке новой записи.. В клиентской программе

ADOQuery.Insert;

// пользователь заполнил необходимые поля

ADOQuery.Post; // --- тут и ошибка

Это не TSQL команда. Почему вы решили, что данная ошибка является именно серверной ошибкой ?
19 июн 09, 10:36    [7319222]     Ответить | Цитировать Сообщить модератору
 Re: Invalid format specification: '%...'  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
temp-for-testing
daw,

ого... т.е. в триггере нельзя вызывать Raiseerror ('Ошибка, Введеный процент не может быть больше 100%')?


процент в тексте ошибки - это специальный символ. если хотите вставить в текст
символ % его надо дублировать:

raiserror('blah %%', 16, 1)
19 июн 09, 10:38    [7319240]     Ответить | Цитировать Сообщить модератору
 Re: Invalid format specification: '%...'  [new]
iljy
Guest
temp-for-testing
daw,

ого... т.е. в триггере нельзя вызывать Raiseerror ('Ошибка, Введеный процент не может быть больше 100%')?

raiseerror использует C-like форматную строку, и % - спецсимвол. Читайте документацию! квотится он как %%.
19 июн 09, 10:40    [7319255]     Ответить | Цитировать Сообщить модератору
 Re: Invalid format specification: '%...'  [new]
temp-for-testing
Member

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

понял.. спасибо большое :)
19 июн 09, 10:41    [7319263]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить