<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55
global $wpdb2;
global $failure;
global $file_hist;
///// echo '<H2><b>Старт загрузки</b></H2><br>';
$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
///// echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}
$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
///// echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}
/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
///// echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
///// echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist); ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7]; ////получаем размер файла
$m_mtime_file=$masiv_data_file[9]; ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file
///// echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
///// echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
///// echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);
if ($results)
{ foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));
////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
///// echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
///// echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}
////загружаем данные
$table='vin_history'; // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация // (путь от корня web-сервера)
$delim=';'; // Разделитель полей в CSV файле
$enclosed='"'; // Кавычки для содержимого полей
$escaped='\
(0) А по «секретному» релизу если не трудно подкормите информацией… (а то честно говоря как то 7.7 уже не так оперативно отслеживаю.)
Что то не работает оптимизатор на 2003 сервере. До этого использовал vk_TerminalSleep.7z, эффект был. Решил попробовать вашу систему, пользователи закричали, что постоянно транзакции. 🙁
(3) теоретически должно работать, но делалось по Windows Server 2008 +http://infostart.ru/public/82018/
ОтключитьТаймаут = 1 — сделали?
Вот такой код вставил:
//////////////////////////////////////////
Перем vk_hook Экспорт;
//////////////////////////////////////////
Процедура ПриНачале…..
ЗагрузитьВнешнююКомпоненту(«vk_Hook1C.dll»);
vk_hook=СоздатьОбъект(«Addin.vk_Hook1C»);
vk_hook.ПерехватSQLExecDirect();
vk_hook.МаксимальныйSleep=1024;
vk_hook.ОтключитьТаймаут = 1; //по умолчанию = 0
vk_hook.ОтключитьДедлок = 0; //по умолчанию = 0
(5)
возможно BkEnd.dll не оригинальная. Попробуйте взять оригинальную из поставки 1С переименовать ее в BkEnd0.dll, а BkEnd.dll взять из «Секретного релиза», хотя для 2003 достаточно оригинальной BkEnd
Возможно используете ODBC32.dll в связке с ODBC33.dll. Нужна ODBC32.dll оригинальная.
Установите на виртуалке или отдельной машине оригинальную 1С, добавьте туда vk_hook1C.dll и сымитируйте блокировку транзакции.
(5) прикрепил пример базы.
maxpiter, Пожалуйста выложи на альтернативный хостинг выложите, хочу посмотреть твой вариант …
Народ хотел спросить кто использует ODBC33.DLL нет ли проблемы с 1с когда много блокировок идет начинается 1с у пользователей закрываться с ошибкой?
(9) много это сколько? при 50 не закрывается.
Ну это когда одновремено 3-5 пользователей начинаю проводит доки и тут еще масовая загрузка доков в течении сек 30, так у некоторых почему то 1с тупо закрывается и все, вот немогу понять из за чего скачал эту dll попробую место odnc33.dll
(11) не должно, у меня пользователь висит в ожидании до посинения.
Проверил вроде работает, можно одно пожелание?
Добавить «UseBalloon=1 ; Показывать balloon tooltips (всплывающие сообщения) в трее» как в odbc33 ?
(13) добавлений чего либо в эту dll не планируется вообще.
Жаль, а тогда можно получить исходники? я сам доработают …
(15) прикрепил исходники. Как «отмодерируют», появится.
Большое спасибо!
При работе связки SQL Server 2008 R2 x64 + 1Cpp + Solution6 + vk_hook1C = Выпадает при потытке просмотра движений из журнала документов
При начале работы системы сначала грузится 1Cpp, затем vk_hook1C.
Добавка: Разобрался работает если установить в SQL Совместимость c SQL2000(80). пока работает.
(18) 7ка только при такой настройке SQL и работает корректно.
(20) а описание посмотреть не судьба? там синим по белому написано 🙂
http://infostart.ru/public/83504/
(20)А что за ошибки? И какое нашел решение?
(6)Скажите пожалуйста, а патченой BkEnd.dll определенно работать не будет?
(23) у меня не работало
Скажите пожалуйста, есть сервер Windows 2008 SP2, SQL 2000, 1С 7.7 (27 релиз), пользователи работают терминально через RemoteApp. Cлучается произвольно, что несколько (от 1 до 4 из 30 однотипных пользователей) подключений, начинают интенсивно использовать процессор, одна сессия забирает 13% проц. времени (всего 8 процессоров) т.е. 1 процессор, при этом у пользователя никаких форм журналов, обработок или списков не открыто. Пользователь при этом никаких изменений не замечает работоспособность не нарушается. Помогает только сброс сессии. Воспроизвести данную ситуацию не удается.
Замеры производительности в отладчике ничего не показали, нагрузку даёт процесс 1cv7s.exe, монитор ресурсов Windiws тоже ничего экстремального не показывает. Использование vk_hook1C результатов не дало.
Есть предположение что данное событие происходит во время краткосрочной потери связи с сервером.
Используются внешние компоненты 1С++, FormEx, DialMail. Используется Перехватчик и ТабличноеПоле, много прямых запросов через ODBCRecordSet.
(25) у меня иногда начинает 1С очень сильно тупить у некоторых пользователей. Просто снимаю сессию RDP и пользователь заходит снова, тормоза исчезают. Это не связано с vk_hook.
Благо такое случается раз-два в неделю и в целом не мешает процессу.
(26) у меня ежедневно появляется 2 — 4 таких подключения, а постоянно мониторить подключения нет возможности, благо пока мощности позволяют, но это неправильно. Установить бы причину.
(27) так не связано ли это с RDP? или какими-то настройками сервера, сети, конкретной машины пользователя.
если бы SQL то у всех бы тупило
если бы 1С то скорее на похожих ситуациях вешалось бы и опять таки у всех
у меня в основном 3-4 человек с такими зависаниями есть.
Если есть подозрения на «… данное событие происходит во время краткосрочной потери связи …», то может попробовать для начала в маршрутизаторе провода в гнездах попереставлять, или вообще особо зависающих пересадить на отдельный хаб…
ну это так, мысли вслух
Не было такой проблемы 50 ком в сети все работают с 1с 7.7 и 8.2 смотри настройки сервера 2008
Тема очень актуальна для тех, кто еще на 7.7
Всем спасибо за участие, проблема решена. Через Process Explorer выяснил что у этих процессов была подгружена ScanOpos.dll, вот она и давала такую нагрузку.
Спасибо огромное! Пробую на связке Windows Server 2008 + Sql Server 2000 SP4 + секретный релиз.
Подскажите, пожалуйста, будет ли работать это решение на связке Windows Server 2003 + SQL Server 2005 + секретный релиз ?
При использовании секретного релиза обязательно ли установить в SQL Совместимость c SQL2000(80)?
(33) На 2003 сервере нет необходимости устанавливать данную разработку. Эта сделана специально для 2008 сервера.
(34) Да.
(34) Так секретный релиз ведь для того и сделан, что б работать «без понижения режима совместимости»
(36) попробуйте, потом расскажете как оно живет 🙂
(37) Попробовал. Полгода стоит. Нормально работает.
Для решения проблемы 100 процентов применил патч от ромикса
(38) сервер какой?
(39)Server 2003 64x+SQL 2008 R2
(40) тема называется «Загрузка процессора 100% в 7.7 под Windows Server 2008»
Для Server 2008 патч от ромикса не работает, почему собственно и наваял это решения.
В описании про это написано.
Я не 1Сник, поэтому прошу о маленьком уточнении:
достаточно просто подключить эту ВК для устранения проблемы или необходимо еще переписывать что-то в БД?
(42) достаточно подключить как написано в примере.
В приложении к публикации есть пример конфигурации.
(43) спасибо за оперативный ответ.
Привет, maxpiter !
Имеем Win 2008 Std R2 + SQL 2008 Ent R2 + 7.7.027 + секретный релиз (начальный BkEnd оригинальный, переименован в BkEnd0).
В каталог ИБ положил Вашу dll, в глобальник прописал
ЗагрузитьВнешнююКомпоненту(каталогИБ()+»vk_Hook1C.dll»);
vk_hook=СоздатьОбъект(«Addin.vk_Hook1C»);
vk_hook.ПерехватSQLExecDirect();
vk_hook.МаксимальныйSleep=1024;
vk_hook.ОтключитьТаймаут = 1; //по умолчанию = 0
vk_hook.ОтключитьДедлок = 0; //по умолчанию = 0
ЗагрузитьВнешнююКомпоненту и СоздатьОбъект отрабатывает правильно, а на строке
«vk_hook.ПерехватSQLExecDirect();» 1с-ка замирает и выбрасывается с ошибкой.
После этого к сожалению пришлось закоментарить в глобальнике вызов Вашей компоненты.
Не могли бы Вы помочь мне в данной ситуации ?
(45) попробуйте конфигурацию, приложенную в примере.
На ней как себя будет вести?
(46)
Пример скачать сам не могу, т.к. на форуме ещё менее 20 сообщений.
Но вчера попробовал то же самое, но при понижении режима совместимости в БД до SQL 2000. В такой ситуации Ваша dll работает и справляется с блокировками как надо. Вот только остался како-то неприятный осадок, что специально ставился секретный релиз для сохранения режима SQL 2008, но всё таки его пришлось понижать …
(47) а если режим совместимости поставить 2005? на момент тестирования у меня SQL 2005 установлен.
(48)
Уже запустил в созданную рабочую базу людей, пока не смогу опробовать.
Попробовал режим совместимости 2005, та же история, вернул 2000.
vk_hook1C.dll работает только если РЕЖИМ совместимости SQL установлен 2000, какой смысл тогда секретного релиза????????????
Уважаемый maxpiter, может быть у Вас есть возможность переписать эту разработку для работы хотя бы в режиме совместимости SQL 2005 ?
(51) без «секретного релиза» 1С не запустится на 7ке и 2008 винде без изменения 1С’ных библиотек.
(52)
по идее нужно найти как называется функция перехвата для 2005 и 2008 sql.
для 2000 она называется SQLExecDirectA и SQLPrepareA.
—-
хотя не факт, что получится, т.к. нужно разбирать эту самую функцию придется.
Мне сейчас искать их ну никак не получается, воюю с почтой россии и таможней 🙁
(53)
Ну если у Вас получится это сделать в обозримом будущем, буду Вам очень признателен.
maxpiter, такой вот вопрос («слегка» не по теме):
http://infostart.ru/public/14593/ ), основанная на разработке Romix’а. Она «вклинивается» в адресное пространство с целью перехвата WinAPI-функции ShellExecuteA при помощи патчинга seven.dll (заменяется с shell32.dll на hook_1c.dll). В общем, для меня весьма удобная штука была бы, если бы не одно «но»…
здесь на Инфостарте есть публикация «Удобная «выгонялка» пользователей из 1С без доработок кода» (
Беда в том, что эта «выгонялка» не работает с Секретным Релизом. Может посоветуете что, учитывая что и у вас, и в той разработке используется hook_1c.dll ?
(55) Подменять вашу hook_1c.dll на ту которая предложена в этой публикации пробовали?
dll можно переименовать из vk_Hook1C.dll в hook_1c.dll и в конфигурации заменить на СоздатьОбъект(«Addin.vk_Hook1C»);
Все остальное по идее должно работать.
Или же в указанной вами публикации в hook_1c.dll внесены дополнения?
(56) попробую воспользоваться вашим советом.
Меня слегка смущает, что при использовании этой «выгонялки» для юзверя сообщение о блокировке базы появляется до выбора пользователей из списка 1С.
Не знаю, насколько там изменена dll-ка. Она называется HOOK_1C.DLL и загружает плагины, перечисленные в файле Hook_1C.ini, из папки Plugins.
P.S. Попробовал — пишет, что в библиотеке отсутствует точка входа ShellExecuteA 🙁
(57) увы ничем помочь не могу, причины в 53
Может быть, когда-нибудь 🙂
Исходники у этой публикации и предложенной вами есть, осталось найти того, кто сможет их собрать 🙂
(58) Выяснил в чём «затык» у той «выгонялки» — при использовании её вкупе с Секретным Релизом почему-то не появляется в трэе значок, через который можно заблокировать/разблокировать базу. Остается найти прогера, который исправит проблему (ООП и иже с ним, к сожалению, не мой профиль) или «терроризировать» самого автора-разработчика.
На данный момент очень актуальна Ваша сборка, так как процессор стал нагружаться до 100%. У нас Windows Server 2008, почему то 2,5 месяца(установили сервер 2008) все работало замечательно, установлен BkEnd пропатченный, теперь 5 дней, как все пользователи взвыли, очень сильно стал тормозить сервер. Попробую использовать вашу сборку.
Извените, что-то я не поняла, у вас нагружался процессор 100% при «секретном» релизе? У нас такое стало происходить при обычной конфигурации 1С (ПУБ). Для использования вашего оптимизатора, я должна установить «секретный» релиз?
(60) интересно как у вас оно работало 2,5 месяца? Смысл «секретного релиза», как раз и заключается в том, чтобы 1С запустилась «в ОС Win Vista/7/2008 в режиме клиент-сервера (без манипуляций с файлами odbc-драйвера); »
(61) если у вас и так работает без «секретного релиза», то вам его не нужно устанавливать. Достаточно скачать vk_hook1C.dll
Не дописала с обычным релизом.
Суть в том, что у на работала 1С с обычным релизом, на Сервере 2005, был полнейший тормоз, 2,5 назад купили новый сервер и установили 2008(я обычный пользователь, может не так изъясняюсь) Все пользователи вздохнули,1С стала «летать». Но наша радость длилась не долго, вот уже 5 дней, как при работе даже двух пользователей процесор подскакивает под 100% и обработка стала происходить очень медленно. Если я установлю «секретный» релиз и ваш оптимизатор улучшится ли работа 1С?
(64) то что вы описываете, после установки компоненты и релиза, должно исчезнуть.
К публикации прикреплен файл с демо базой, запустите его с вашими библиотеками, потом с теми что в поставке, сравните результат.
Большое спасибо за такой быстрый ответ
(64)Релиз установить нужно это проверено. Но если загрузка подскакивает до 100% при 2-активных пользователях, это что то с системой. Посмотри посты выше у меня была похожая ситуация.
(53) вы «совершенно случайно» 🙂 не нашли свободного времени, чтобы сделать поддержку для sql2005/sql2008 режимов?
(68) shurix, теперь ответный вопрос к вам 🙂 а вы разобрались с исходниками? получилось реализовать?
Автору респект!!! Вещь нужная.
Интересно а есть ли нечто подобное при записи справочников…
ОтключитьДедлок что делает?
отключает deadlock
http://ru.wikipedia.org/wiki/%D0%92%D0%B7%D0%B0%D0%B8%D0%BC%D0%BD%D0%B0%D1%8F_%D 0%B1%D0%BB%D0%BE%D0%BA%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0
Очень нужная вещь!
Но проблема появилась следующего характера кто сталкивался?
Неудачная попытка создания vk_hook=СоздатьОбъект(«Addin.vk_Hook1C»);
(73) mrcastmaster,
Не загружена компонента.
Загрузку, инициализацию объекта и переменных делать в ГМ
(74)
Спасибо за ответ.
Все прописал как и описан ов статье ушла проблема загрузки в 100% терминального сервера. НО не ушла проблема медленной работы 1С 7.7 и sql 2008 r2, все пользователи в терминале 2008 r2. Когда всех выгоняю и заходят первые люди все нормально, все работает. Но как только людей заваливается за 25-30 все начинает висеть и проведение 1 документа от 10 минут. Кто еще подскажет какие действия можно предпринять именно в данной связке(не предлагать использование sql 2000 и терминала под 2003)
База 30 Гб. Пользователей до 170.
(75) mrcastmaster, смотреть настройки SQL
У меня SQL сервер 16 ядер, 128 гигов оперативки. БД вся в памяти умещается пока.
База 105 гигов + log 91 гиг. tempdb на RAM диске.
Работают одновременно до 75 юзеров. Самое долгое проведение 15 секунд, самое быстрое 0.19 секунды.
То что до 10 минут проводится, означает что вы используете механизмы 1С для проведения документов, что очень плохо.
Включайте отладчик и смотрите кто тупит, скорее всего ВременныйРассчет().
И переходите на прямые запросы.
Привет всем
Сильно не бейте.
Скачал dll и пример базы. Все регистрируется, ошибок не выдает. НО нифига не фильтрует.
В чем может быть проблема?
(77) Supportkfk, сложно так сказать.
На базе примера сделайте, пожалуйста, фильтрацию документов в журнале, как вы это видите и прикрепите сюда.
Спасибо за разработку.
Нашел ошибку — если в параметрах SQL базы установить Режим совместимости = 100 (MS SQL 2008)
то при открытии журнала документов возникает ошибка:
—————————
1С:Предприятие
—————————
SQL State: 42000
Native: 1018
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Неправильный синтаксис около «INDEX». Если имелась в виду часть табличной подсказки, то для этого теперь необходимо использовать ключевое слово A WITH и круглые скобки. Правильный синтаксис см. в электронной документации по SQL Server.
SQL State: 42000
Native: 8180
Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Не удалось выполнить подготовку инструкций.
—————————
ОК
—————————
Если режим совместимости = 80, ошибка не возникает.
(79) сминусовать бы 🙂
коммент 18 и 34 выше написаны.
Этот функционал работает только с режимом совместимости 80
(80) Я вот тоже не понимаю, если использовать режим совместимости 80, то зачем тогда использовать секретный релиз?
(81) столько лет уже прошло 🙂
Без секретно релиза на 2008r2 1С не стартовала в даты топика. Как сейчас не знаю.
vk_hook.ПерехватSQLPrepare() начинает перехват сообщений, а как завершить его?
я использую режим совместимости sql 2014, перехват включаю только в одном журнале, перехватываю нужные мне запросы, ну и пяток не нужных, т.к. vk_hook шпарит запросы на диалекте sql 2000( другой сиснтаксис хинтов запроса ), приходится их тоже подменять.
т.е. после установки нужных мне отборов мне перехват больше не нужен, а пользоваться полноценно журналом (смотреть подчиненные документы и т.д. ) уже невозможно, т.к. придется перехватывать кучу служебных запросов и все их заменять, чего делать не хочется.
Есть ли метод остановки перехвата?
т.е. ПерехватSQLPrepare() перехват начинает, а что может его завершить?
Может кто-то подскажет в чем дело
(доступа к с кулю не имею, SQL2008)
Подключаюсь на удаленку к клиенту
При попытке модификации метаданных — вылазит проблем.
Например:
— создаю новый справочник, сохраняю конфигурацию — все норм.
— спр.номенклатура — меняю порядок реквизитов (строки неогр.длины вниз спсика реквизитов), сохраняю конфигурацию — бежит счетчик обработки спр.номенклатруры на 900 элементе в конфигураторе окошко проблемы (пиктограмма красный круглый знак ошибки), сообщеняи на окне никакого нет и кнопкой «Ок», жмем кнопку — получаем сообщение о проблеме
— аналогично предыдущему, если пытаемся добавить реквизит в справочник.
Проблемное сообщение:
SQL State: HY000
Native: 0
…. Подключение занято до получения результатов для другого hstmt
Беглое яндексение ссылается на проблемы когда прикладная работа с базой прямыми запросами и куросрами.
Про конфигуратор — ничего бегло не нарыл.
.
куда смотреть, что копать?
Спсб.
(84)
Как вариант нарушена уникальность какого нибудь поля в этом элементе(кода как правило), запустить в режиме предприятия, сортирнуть по коду, посмотреть что за 900й элемент, попробовать пересохранить его вручную с какими либо изменениями.
(85) нет. такая же ситуация наблюдается если я аналогичным способом модифицирую спр.контрагенты
(86)
да, какая то нетипичная ошибка для конфигуратора.
доступ к скулю все равно нужен.
перевести на сервере базу в синглюзер режим через менеджемент студио тот же самый, предварительно через активити монитор посмотреть все соединения к базе, закрыть его. и запустить конфигуратор для изменений.
(87) хреново, это надо забэкапить скулем на всякий случай, а потом уже майстрячить…
зачем, это типовые операции и к изменению структуры БД отношения не имеют, делается для отсечения прочих соединений, если они есть, чтоб уж быть точно уверенным. Бэкап и так делаться должен.
(83) отключать ПерехватSQLPrepare метода нет, но он и не нужен, т.к. управление подменой реализовывается через
УстановитьЗаменуSQL и УдалитьЗаменуSQL
у меня реализовано так
Показать
(84) возможно 1Сные dll не оригинальные используются в БД. С 2011 года используется этот перехватчик и описанных или каких-либо проблем с конфигуратором или БД не возникало. тьфу-тьфу-тьфу 🙂
Режим совместимости 80 стоит?
(83) предыдущий пост не совсем корректный, правильно так.
и когда она более не нужна, то
(91)
(92)
в том то и дело, что режим совместимости sql 2014. я понимаю, что как только включается ПерехватSQLPrepare() все запросы идут через hook. я использую 27 последний релиз где используется BkEndUtls.dll, беда в том что hook перехватывает весь sql трафик и запросы идут в режиме совместимости с sql 2000. Я использую его в пределах одного журнала, и хотелось бы управлять возможностью включения и отключения перехвата, потому что вне зависимости от включенных/отключенных подмен hook пропускает через себя все запросы.