powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ADO и триггеры
2 сообщений из 2, страница 1 из 1
ADO и триггеры
    #33435846
Prote2n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ситуация следующая. Создаю соединение с БД на VFP 6.0, в ней есть триггеры на вставку. Так вот мне необходимо отключить их. Правда придумал один способ - это завести в отдельной таблице настроек поле и смотря какое там значение выходить сразу из тела триггера или же потом после некоторых действий. Только вот беда, когда я выставляю нужное значение с помощью ADO и делаю вставку в таблицу, то триггер все равно срабатывает (, хотя на самом фоксе все нормально работает. Может есть другие варианты отключения триггера???
...
Рейтинг: 0 / 0
ADO и триггеры
    #33437122
Prote2n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Придется самому себе ответить. А уж насколько мое решение правильно судить вам, критика приветствуется.
Вечерком вчера пришел и накидал маленький примерчик. В общем, решение тоже самое - есть дополнительная таблица (tparam) с параметрами, в которой есть поле name со значением trigger и поле number со значением 0. Когда БД работает под Фоксом, то значение устанавливается в 1, и тогда триггер обрабатывает то, что нужно для Фокса. Если же сделать подключение с помощью ADO, то при выполнении хранимой процедуры, массив arrTemp в любом случае инициализируется нулями, не зависимо от выборки. Скорее это зависит от Provider’а, хотя точно не могу сказать, т.к. в этом не силен. Таким образом, нам остается проверить данный массив на ноль, и если проверка удалась сразу вернуть .T., в этом случае вся ответственность за корректность вводимых данных ложится на внешнюю программу.
Вот и вся техника 8)

Пример триггера на вставку

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
PROCEDURE maintrigger

	LOCAL arrTemp
	DIMENSION arrTemp[ 1 ]
	
	SELECT tparam.number FROM tparam WHERE tparam.name='trigger' ;
	INTO ARRAY arrTemp
	
	IF(arrTemp( 1 )= 0 )
		* Внешняя программа

	ELSE
		* Программа FoxPro
	ENDIF
	
RETURN .T.

P.S.
Истинный мой ник - Protein. Просто забыл свой пароль )))
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ADO и триггеры
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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