
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
03.10.2007, 19:31
|
|||
|---|---|---|---|
Сквозной запрос с параметром |
|||
|
#18+
Выполняю некий скрипт на SQL: Код: plaintext 1. 2. 3. пробую тоже самое, только с параметром: Код: plaintext 1. 2. 3. 4. 5. Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
03.10.2007, 20:49
|
|||
|---|---|---|---|
|
|||
Сквозной запрос с параметром |
|||
|
#18+
пробую тоже самое, только с параметром: Сильно ошибаетесь, совсем не то же самое. Код: plaintext Код: plaintext Какя тут ошибка? Та самая, которая написана. Временная таблица не найдена. Вы уверены, что doc_id=49 существует? Кстати, все три SQLEXEC можно легко объединить в один. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.10.2007, 09:34
|
|||
|---|---|---|---|
|
|||
Сквозной запрос с параметром |
|||
|
#18+
стиль, который облегчает разработку Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.10.2007, 09:50
|
|||
|---|---|---|---|
Сквозной запрос с параметром |
|||
|
#18+
Дело в том, что при использовании параметра в сквозном запросе, на сервер будет посылаться команда вида: Код: plaintext 1. Решение: 1. Не используйет параметра: Вместо Код: plaintext Код: plaintext 1. 2. 3. 4. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.10.2007, 10:32
|
|||
|---|---|---|---|
Сквозной запрос с параметром |
|||
|
#18+
Aleksey-KДело в том, что при использовании параметра в сквозном запросе, на сервер будет посылаться команда вида: Код: plaintext 1. Моё решение было следующим: Код: plaintext 1. 2. 3. Почему этот вариант работает, а предыдущий нет? Проблема как бы решена, но вопрос всё равно открыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.10.2007, 10:40
|
|||
|---|---|---|---|
|
|||
Сквозной запрос с параметром |
|||
|
#18+
Почему этот вариант работает, а предыдущий нет? Ну Aleksey-K же уже объяснил! Созданное в одном батче не видно в другом. Так как временная таблица при применении параметра создается внутри хранимой процедуры, то при выход из этой процедуры она уничтожается. Сказано же - объединяйте такие команды в один запрос и тогда и с параметром будет работать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.10.2007, 14:48
|
|||
|---|---|---|---|
Сквозной запрос с параметром |
|||
|
#18+
Еще раз объясняю! Когда вы используете параметры, ваш запроса отсылается на сервер и выполняется не напрямую, как в первом варианте, а через вызов специальной хранимой процедуры sp_executesql, куда в качестве параметра передается сам запрос и ваш параметр. Ваш запрос создает временный объект (таблицу #CurDocsRefs), но областью ее определения является не коннект, как в первом варианте, а хранимая процедуры sp_executesql. Как только эта хранимая процедуры закончит работу, ваша временная таблица будет удалена. Локальные временный объеткы (которые начинаются с символа # ) "живут" до тех пор, пока код не выйдет из области их определения. Создали в коннекте - до закрытия коннекта. Создали в хранимой процедуре - до конца работы хранимой процедуры. Для того, чтобы в этом убедится, запустите SQL Prfiler и посмотрите, что уходит на сервер в первом и во втором случае. С уважением, Алексей P.S. Кстати, "проходящий" тут немного ошибается. Batch (пакет) тут не причем. Если я сначала создам в одном пакете временную таблицу (через одну команду SQLEXEC), то нормально могу ее использовать из других batch (из других SQLEXEC), но до тех пор пока не покину ее Scope - область определения. В данном случаем - коннект. Ну или, конечно явно ее не удалю (DROP...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&tablet=1&tid=1588697]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
53ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 334ms |

| 0 / 0 |
