К сожалению, нет прямого способа сделать это, даже используя ExecScript. Используя ExecScript, вы можете запустить код delete trigger
, и он вернет true
без каких-либо ошибок, как если бы он это сделал. Но он не удаляет триггер и не возвращает информацию о том, что триггер еще не поврежден. К сожалению, вы даже не можете использовать ExecScript для обхода кода, который в противном случае не поддерживается VFPOLEDB.
Единственный способ сделать это - создать копию db c (используя VFP modify database
- или C# низкий уровень, если вы достаточно смелы) и в этой копии имейте такое же определение таблицы без триггера.
Например:
Сделайте копию вашего существующего .db c (.dct и .dcx)
Измените таблицу, чтобы удалить триггер (или сделайте это в коде :)
Delete Trigger On ('yourTableName') For Insert
- Сохраните этот .db c, .dct и .dcx под другим именем.
- Восстановить существующие .db c, .dct, .dcx.
- Когда вам это нужно, вы можете заменить файлы .db c, .dct, .dcx, а затем вернуть обратно, когда закончите.
Это громоздко, но лучше, чем ничего.
Возможно, вы захотите вместо этого иметь исполняемый файл VFP, который вы можете вызывать с параметрами и который выполняет вставку за вас.