Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
1 antand Процедура вызывается - вызывается. А что Вы там внутри написали - так она вам и возвращает. точно так на самом деле стОит проверить собственно данные, которые дергает из базы проца, похоже, что данные "глючат", то бишь разные исходные данные - разные результаты, все как учили Ну оно понятно... с этого и начали - данные проверяли... и по аудиту в том числе... не менялись они в этот момент... и не должны были меняться... понятно, что проблему тщательно искали в первую очередь у себя - может не так написали процедуру... или данные корявые... - но вся штука в том что ничего не нашли... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2006, 14:42 |
|
||
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Чудес не бывает, все они рукотворные. Скорее всего, нужно пинять на себя. Я как то обращался через наш, в большой Sybase с подобным но стабильным глюком. Мне пришел ответ т.к. код процедур очень сложный проблему найти не удалось. Пришлось искать глючное место процедуры и переписывать другим кодом. Такие места бывают.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2006, 16:21 |
|
||
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
а я опять повторюсь - чудес не бывает... и всетаки проверять проверять и проверять как учил великий ... и железо и тело процедуры и что она там вызывает мне кажется проблема во втором скорее чем в первом. С уважением Александр Плотников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2006, 07:24 |
|
||
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Возникли вопросы к специалистам в программировании на Transact-SQL: 1) Насколько необохима/желательна инициализация переменных (присвоение им начальных значений) в Transact-SQL? 2) Как влияет использование out параметра в объявлении переменных процедуры на зрачение этого параметра? Пример: create proc Proc1 (@str varchar(10) out) as begin select * from Table1 where str=@str -- или любой другой код - не принципиально end go create proc Proc2 as begin declare @str varchar(10) exec Proc1 @str out select @str end go т.е. является ли ошибкой либо нежелательным стилем объявлять переменную @str как out в то время, как внутри вызываемой процедуры ей не присваиваются никакие значения?... может ли это вызвать какие либо ошибки или коллизии в распознавании переменных и соответственно присвоении им значений?... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 08:23 |
|
||
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
> To Татьяна В А что мешает внутри sp Proc1 сделать типа select @str = '', но это вряд ли поможет!!! А проблема может быть в чём угодно, например индексы не подхватываются и их надо указывать принудительно!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 10:28 |
|
||
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Татьяна ВВозникли вопросы к специалистам в программировании на Transact-SQL: 1) Насколько необохима/желательна инициализация переменных (присвоение им начальных значений) в Transact-SQL? 2) Как влияет использование out параметра в объявлении переменных процедуры на зрачение этого параметра? Пример: create proc Proc1 (@str varchar(10) out) as begin select * from Table1 where str=@str -- или любой другой код - не принципиально end go create proc Proc2 as begin declare @str varchar(10) exec Proc1 @str out select @str end go т.е. является ли ошибкой либо нежелательным стилем объявлять переменную @str как out в то время, как внутри вызываемой процедуры ей не присваиваются никакие значения?... может ли это вызвать какие либо ошибки или коллизии в распознавании переменных и соответственно присвоении им значений?... Добрый день! Это не является какой-то критичной ошибкой, все зависит от того что Вы потом делать будете с этой переменной(возвращаемым значением). Т.е. в данном случае Вам надо смотреть как эта переменная потом используется. Я, например, всегда присваиваю такого рода переменным null или какое-то определенное начальное значение, чтобы быть 1) быть уверенным в правильности выборок и вычислений 2) легко проверить значение этой переменной далее(is null и т.п.) Вот например пример кода в ASA 7, который может привести к ошибочным вычислениям @str varchar(10) select @str=str from Table1 where id=2 if @str is null begin ......... end Здесь @str не инициализируется(и там не null) и если select не вернет не одной записи, то блок begin не выполниться. Это говорит о том, что при объявлении переменных @str varchar(10), в @str попадает "мусор" и только одному богу известно, что вернет например следующий оператор: select * from Table1 where str=@str ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:02 |
|
||
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Татьяна В1) Насколько необохима/желательна инициализация переменных (присвоение им начальных значений) в Transact-SQL?Этот вопрос не относится к Transact-SQL. Этот вопрос относится к первому месяцу изучения программирования вообще. Татьяна В2) Как влияет использование out параметра в объявлении переменных процедуры на зрачение этого параметра? Пример: create proc Proc1 (@str varchar(10) out) as begin select * from Table1 where str=@str -- или любой другой код - не принципиально end goЭтот код неверный. Параметр процедуры объявлен как out, а потом процедура используется для сравения. Результат процедуры абсолютно непредсказуем. Татьяна Вт.е. является ли ошибкой либо нежелательным стилем объявлять переменную @str как out в то время, как внутри вызываемой процедуры ей не присваиваются никакие значения?Если переменной не присваиваются никакие значения значит эта перменная вообще не нужна. Если перменная используется для передачи параметров внутрь процедуры - она объявляется как IN и обязательно инциализируется перед вызовом процедуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 21:27 |
|
||
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
White Owl Татьяна В1) Насколько необохима/желательна инициализация переменных (присвоение им начальных значений) в Transact-SQL?Этот вопрос не относится к Transact-SQL. Этот вопрос относится к первому месяцу изучения программирования вообще. Татьяна В2) Как влияет использование out параметра в объявлении переменных процедуры на зрачение этого параметра? Пример: create proc Proc1 (@str varchar(10) out) as begin select * from Table1 where str=@str -- или любой другой код - не принципиально end goЭтот код неверный. Параметр процедуры объявлен как out, а потом процедура используется для сравения. Результат процедуры абсолютно непредсказуем. Татьяна Вт.е. является ли ошибкой либо нежелательным стилем объявлять переменную @str как out в то время, как внутри вызываемой процедуры ей не присваиваются никакие значения?Если переменной не присваиваются никакие значения значит эта перменная вообще не нужна. Если перменная используется для передачи параметров внутрь процедуры - она объявляется как IN и обязательно инциализируется перед вызовом процедуры. Тут даже добавить нечего, White Owl все четко указал. to Татьяна В Когда я писал что "Это не является какой-то критичной ошибкой...", я конечно имел ввиду что это не является ошибкой по отношению к серверу. Серверу все равно, что Вы там напишете в процедуре с точки зрения обработки данных, напишите что 2+2=5 так и будет. Сервер тупо выполняет ваши инструкции в процедуре, лишь бы в этих инструкциях ошибки не было с точки зрения языка T-SQL и определения данных, в данном случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 00:01 |
|
||
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
White Owl Татьяна В1) Насколько необохима/желательна инициализация переменных (присвоение им начальных значений) в Transact-SQL?Этот вопрос не относится к Transact-SQL. Этот вопрос относится к первому месяцу изучения программирования вообще. Татьяна В2) Как влияет использование out параметра в объявлении переменных процедуры на зрачение этого параметра? Пример: create proc Proc1 (@str varchar(10) out) as begin select * from Table1 where str=@str -- или любой другой код - не принципиально end goЭтот код неверный. Параметр процедуры объявлен как out, а потом процедура используется для сравения. Результат процедуры абсолютно непредсказуем. Татьяна Вт.е. является ли ошибкой либо нежелательным стилем объявлять переменную @str как out в то время, как внутри вызываемой процедуры ей не присваиваются никакие значения?Если переменной не присваиваются никакие значения значит эта перменная вообще не нужна. Если перменная используется для передачи параметров внутрь процедуры - она объявляется как IN и обязательно инциализируется перед вызовом процедуры. Благодарю за ответы. Насколько мне известно по умолчанию переменные инициализируются NULL значениями?... Поправьте меня если я не права... И еще... Думаю хорошим примером правильного написания процедур являются системные процедуры Sybase... Так вот в них зачастую переменные не инициализируются... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 21:14 |
|
||
|
Некорректная работа хранимой процедуры
|
|||
|---|---|---|---|
|
#18+
Татьяна ВНасколько мне известно по умолчанию переменные инициализируются NULL значениями?... Поправьте меня если я не права...Да. Локальные переменные, объявленые внутри блока - инициализируются NULL'ом. Но к параметрам процедур это не относится. Татьяна ВИ еще... Думаю хорошим примером правильного написания процедур являются системные процедуры Sybase... Так вот в них зачастую переменные не инициализируются...Скорее всего, в этих случаях инициализация просто не нужна. Возможно эта переменная будет проинициализирована чуть позже. А вообще, никто вам не гарантирует отутствие ошибок в системных процедурах :) Эх, если бы их там не было.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 22:29 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=33966569&tid=2012598]: |
0ms |
get settings: |
9ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 392ms |

| 0 / 0 |
