powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Одновременное выполнение процедур
6 сообщений из 6, страница 1 из 1
Одновременное выполнение процедур
    #33130359
paralel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чтобы заставить MS SQL Server выполнить параллельно процедуру (ест-но с разными параметрами) необходимо открыть с клиента столько коннектов, сколько процедур надо запустить.
Подскажите как должен выглядеть код на Visual Foxe чтобы удовлетворить
это требование.
Спасибо, очень не хочется играться с JOBSами в MS SQL Server
...
Рейтинг: 0 / 0
Одновременное выполнение процедур
    #33130405
Фотография Диченка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну кинь на форму столько таймеров, сколько тебе нужно одновременно запустить процедур. В каждый таймер пропиши вызов процедуры со своими параметрами.
...
Рейтинг: 0 / 0
Одновременное выполнение процедур
    #33130425
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень не хочется играться с JOBSами в MS SQL Server
это Вы зря хорошая штука работает как часы
...
Рейтинг: 0 / 0
Одновременное выполнение процедур
    #33130501
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДиченкаНу кинь на форму столько таймеров, сколько тебе нужно одновременно запустить процедур. В каждый таймер пропиши вызов процедуры со своими параметрами.
Если не будет включен асинхронный режим, то это равнозначно последовательному запуску (по очереди). FoxPro не может выполнять несколько процессов одновременно (паралельно).

А если будет включен асинхронный режим, то и таймеры ни к чему. Просто последовательно запускаются ХП на сервере.

Примерно это выглядит так.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
* Создаем коннекты
LOCAL lnConnect1, lnConnect2
lnConnect1 = SQLStringConnect(...)
lnConnect2 = SQLStringConnect(...)

* Устанавливаем асинхронный режим работы для этих коннектов
SQLSETPROP(m.lnConnect1,"Asynchronous",.T.)
SQLSETPROP(m.lnConnect2,"Asynchronous",.T.)

* Запускаем ХП на выполнение
LOCAL lnResult1, lnResult2
lnResult1 = SQLExec(m.lnConnect1,"exec MyProc1")
lnResult2 = SQLExec(m.lnConnect2,"exec MyProc2")

* Запускаем цикл ожидания, для проверки факта завершения 
* выполнения процедур. Вот это можно навесить на таймеры
DO WHILE m.lnResult1= 0  OR m.lnResult2= 0 
	lnResult1 = SQLExec(m.lnConnect1,"")
	lnResult2 = SQLExec(m.lnConnect2,"")
ENDDO

Команда SQLExec() будет возвращать
0 - асинхронный процесс еще не закончен
-1 - ошибка выполнения на сервере
-2 - асинхронный процесс был прерван самим клиентом (нажал Esc, если это допустимо)
>0 - успешное выполнение. Число показывает количество результирующих выборок отправленных клиенту
...
Рейтинг: 0 / 0
Одновременное выполнение процедур
    #33130516
Фотография Диченка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Асинхронный режим плох тем, что работает в разы медленнее синхронного. Автору вопроса стоит все-таки подумать о серверной стороне для решения вопроса.
...
Рейтинг: 0 / 0
Одновременное выполнение процедур
    #33132413
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Диченка!

Асинхронная выборка (когда данные небольшими пачками приходят и после каждой пачки куча времени тратится на всякие уведомления, опросы и т.п.) - это одно, а асинхронный запуск ХП которые возможно и не возвращают то ничего - это несколько иное...

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Одновременное выполнение процедур
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]