|
|
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
В Visual C имеется DB проект. Хранимая процедура создает и заполняет множство таблиц в DB. Если в теле добавляем несколько Select '1' ( как бы для задержки ) , то она нормально завершаеться, а без них В разное время выполняеться до разного предела и выдает сообщение - [SQL Server] Internal Query Processor Error: The query encountered an unexpected error during execution. Спасибо. 2 Kilroy Все суждения принимаю, тоже считаю, что это решит вопрос, так как можно будет контролировать завершение каждого Select__Insert__ . Однако это уже не в процедуре. И придеться много чего менять. Надо искать решение именно с помощью процедуры. 2Glory Наверняка вариант - Use t2 GO select * Into t2..table1 from t1..table1 дала бы решение ( тут тоже ожидание (GO) выполнения предыдущего SELECT , однако в DB проекте под Visual C не принимаються команда GO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 08:34:34 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
Не согласен. Если в QA процедура отрабатывает без ошибок, то с ней все в порядке!!! Надо ее лишь правильно запустить из клиенского приложения, привязав буфер для выходного параметра к команде и отправив выполняться. И все!!! Но для этого придется вникнуть в ODBC API, а так я знаю примеры таких процедур с фиктивными select'ами в досточно серьезных продуктах. Просто народ использует шаблонные библиотеки для работы с базой, и если компонент не понимает - как это дать базе команду и не получить набора данных в ответ - приходится принимать это решение для ленивых. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 09:34:12 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
2 Kilroy Можете подсказать , каким образом в DB проекте под Visual C , в процедуре, задать команду 'GO' на выполнение предыдущей цепочки команд. ? Тут уж нет никаких вымыслов от меня к примеру -- CREATE PROCEDURE Go_example AS DECLARE @ii int DECLARE @ii1 int while @ii<10 begin SET @ii =@ii +1 SELECT * FROM ____ -- достаточно большой table GO -- выполнение (ожидание завершения) end проверяйте ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 09:53:00 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
GO - это не команда начать выполнение, это банальный разделитель текста в скрипте, понятный QA. Все программы работают с сервером одинаково: есть текст, содержащий команды TSQL - их надо выполнить. Приложение выделяет командный буфер и помещает в него кусок команд - содержимое буфера и есть пакет или batch. Так вот QA нарезает текст скрипта по разделителям GO, а как твоя программа будет это делать - зависит от тебя. А в хранимой процедуре никаких пакетов не может быть и разделителей в ее теле не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 10:40:00 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
Допустим программа есть то , что наверху написанна, и на месте "GO" надобно, чтобы предыдущий SELECT была завершена. Я не представляю, а каких кусках может идти речь. Подскажи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 10:54:49 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
Она и так будет завершена, без всякого GO. А по поводу кусков и всего остального, советую почитать в MSDN или в BOL про разработку клиентских программ через ODBC. Извини, что к книжкам отсылаю,мне не тяжело все рассказать, просто писать уж больно много придется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 11:22:13 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
2 Kilroy А ведь именно этот цикл не работает. Из имеющиеся таблицы - имен таблиц данного БД, в цикле , с помощью SELECT * INTO DB2..aaa From DB1..aaa перебрасываються таблицы в другую БД. И выходит, что не завершая предыдущий SELECT требуеться выполнить следующий ! Что скажете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 11:40:14 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
бред какой... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 11:53:37 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
Так в QA работает? или нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 11:55:50 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
1. Код: plaintext 1. 2. 2. Попробуйте ради интереса использовать sp_executesql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 11:59:59 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
Ничего не помогло. :-(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 14:18:39 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
За 50 долларов США я напишу на С++ (VC++) программу запускающую твою хранимую процедуру на выполнение. Программа будет работать через ODBC, текст процедуры модифицироваться не будет, главное, чтобы в QA она запускалась без ошибок. Если интересно - высылай скрипты БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 14:39:25 |
|
||
|
Задержки выполнения
|
|||
|---|---|---|---|
|
#18+
2 Kilroy Спасибо. Она у меня работает .Конечно , не тем путем, который я предлагал. И еще - о себе суди глазами чужих! Здесь обсуждаем , почему не работает именно этот алгоритм. Ведь менеджер транзакции должен был следить за всем ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2002, 14:52:47 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32072871&tid=1818469]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
86ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 394ms |

| 0 / 0 |
