MS SQL Servers 1.3 - FS плагин к Total Commander ================================================ Данный плагин предоставляется "как есть". Автор не дает гарантий, что плагин будет отвечать всем ожидаемым требованиям. Автор не несет никакой ответственности за возможные последствия работы с плагином. Плагин распространяется как freeware продукт. ================================================== Плагин обеспечивает доступ к локальным и удаленным Microsoft SQL серверам. Возможности плагина: ==================== - Список серверов для плагина можно задать разными способами. - Плагин может читать из реестра список серверов, зарегистрированных в Enterprise Manager (поддерживается любая степень вложенности групп серверов). - Плагин может читать из реестра алиасы из Client Network Utility. - Возможно также определить собственный список с именами серверов, к которым Вы имеете доступ (или думаете, что имеете :-)). - Текущий список серверов можно переключать в диалоге конфигурации. - Поддерживаются именованные экземпляры серверов. - Плагин просматривает иерархию "Сервер - База данных - Таблица" (Server - Database - Table) для выбранного списка серверов. - Объекты с нерегулярными именами (содержащие пробелы, кириллицу, ряд специальных символов или совпадающие с зарезервированными словами MS SQL Server) отображаются с разделителями и корректно поддерживаются. - Отображаемые данные: Для серверов - имя сервера (Name). Для баз данных (БД) - имя БД (Name), общий размер файлов БД в байтах (Size), дата создания БД (Date). Для таблиц - имя таблицы (Name), количество записей в таблице (Size), дата создания таблицы (Date). (Внимание: запросы к системным таблицам производятся без обновления статистики (dbcc updateusage), поэтому информация в колонке Size может быть неактуальной, как для БД, так и для таблиц). - Для баз данных дополнительно отображается в виде атрибутов файла: read-only - для read-only БД; hidden - если работать с БД может только ее владелец (dbo use only). - Подключение к серверу требует аутентификации (ввода пользовательского логина и пароля для сервера с SQL Server аутентификацией). - Данные о подключении к серверу можно сохранять: - постоянно в INI файле, поддерживается шифрование сохраненных данных; - для текущей сессии Total Commander; либо использовать только для текущего входа в выбранный сервер (при повторном входе в данный сервер парль будет запрошен снова). - Очистить информацию о всех подключениях можно в диалоге конфигурации (закладка Login Dialog, кнопка Clear). - Просмотр и редактирование записей в таблицах с помощью внутреннего листера/редактора запросов (Query Viewer). - В целях ускорения просмотра для больших таблиц производится ограничение выводимого диапазона записей с помощью условия TOP. - Диалог конфигурации доступен через пункт меню [Properties] для плагина или сервера или из Query Viewer. Возможности внутреннего листера/редактора запросов: =================================================== - Выполнение произвольных SQL-запросов, в т.ч. не возвращающих результата в виде набора данных (INSERT, UPDATE, DELETE). - Возможно редактирование результатов обновляемых запросов типа SELECT. - Ряд операций выполняется простым кликом мышью по таблице: - Левый клик по заголовку столбца выполняет запрос с сортировкой по этому столбцу. Вcе клики по заголовку завязаны в кольцо - сортировка ASC/ сортировка DESC/нет сортировки. Сортируемый столбец выделяется фоном самого столбца либо цветом заголовка (цвет можно задать). Shift + левый клик позволяет производить сортировку более чем по одному столбцу. Ctrl + левый клик полностью отменяет сортировку в запросе. - Alt + правый клик по какой-либо ячейке данных выполняет запрос с фильтром вида "WHERE <выбранный столбец> = <выбранному значению>". Alt + Shift + правый клик позволяет добавлять дополнительные фильтры (все фильтры объединяются с помощью AND). Alt + Ctrl + правый клик отменяет ранее поставленные фильтры. - При постановке фильтров мышью исходный фильтр запроса (фраза WHERE) может сохраняться и объединяться по AND с фильтрами, устанавливаемыми мышью (см. флаг "Save original query filter" в конфигурации) - Возможно выполнять выделенную часть скрипта (как в Query Analyzer). ВНИМАНИЕ! При этом быстрая сортировка и фильтрация мышью НЕ РАБОТАЮТ. - Если запрос возвращает несколько наборов данных (например EXEC SP_HELP...), возможна навигация по всем этим наборам. ВНИМАНИЕ! При этом быстрая сортировка и фильтрация мышью НЕ РАБОТАЮТ. - Можно устанавливать таймауты для соединения и запроса. - Специальная кнопка позволяет ограничить максимальную ширину колонок. - В отдельном окне можно просматривать и редактировать поля типа BLOB (TEXT, IMAGE, BINARY). Поддерживаются редактирование текста, сохранение в файл, загрузка из файла и работа с буфером обмена. Просмотр возможен в виде text/image/hex (в hex режиме - read only). Системные требования: ===================== Работа плагина проверялась в конфигурациях: ОС - WinXP, Win98 SQL Server - 7.0, 2000 Если будут проблемы с другими конфигурациями - пишите, PLS. Установка: ========== 1. Распакуйте архив с плагином в выбранный вами каталог 2. Установите FS плагин "MS_SQL.wfx" (см. Help к Total Commander) Плагин будет доступен в "Network Neighborhood" под именем "MS SQL Servers". 3. Установка библиотеки для шифрования: Для шифрования сохраняемых данных о подключениях к серверам в каталоге плагина должна находиться библиотека crsqlwfx.dll. ВНИМАНИЕ: в отсутствие этой библиотеки Ваши данные о подключениях (в т.ч. логины и пароли) будут сохраняться в явном виде. Забота о Вашей приватности - в Ваших руках! Поставляемая с плагином библиотека crsqlwfx.dll реализует простой алгоритм шифрования с использованием компонент из пакета DCPcrypt Cryptographic Component Library v2 (http://www.cityinthesky.co.uk). Вы можете написать свою реализацию библиотеки для шифрования данных. Она должна экспортировать две функции с интерфейсом: // for PASCAL function Encode(Source, KeyString: PChar): PChar; stdcall; function Decode(Source, KeyString: PChar): PChar; stdcall; // for C char* __stdcall Encode(char* Source, char* KeyString); char* __stdcall Decode(char* Source, char* KeyString); Первая функция шифрует, а вторая расшифровывает строку Source с ключом KeyString. 4. Для правильного экспорта списка серверов проверьте значения ключей реестра, прописанные в файле MS_SQL.ini в каталоге плагина. Ключ EMRegServerKey в секции [General] должен содержать путь к списку серверов, зарегистрированных в SQL Server Enterprise Manager. Ключ CNUAliasesKey в секции [General] должен содержать путь к списку алиасов компьютеров, к которым подключен Ваш клиент утилитой SQL Server Client Network Utility. Стоящие в файле значения: EMRegServerKey=HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\ 80\Tools\SQLEW\Registered Servers X CNUAliasesKey=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\Client\ConnectTo могут Вам не подойти, т.к. истиное их положение в реестре зависит от версий Windows и SQL Server. Что планируется дальше: ======================= В этом списке я постарался учесть пожелания заинтересованных пользователей. Всем большое спасибо за конструктивную критику и предложения. - Просмотр структуры таблиц (в виде CREATE TABLE ..., для F3, F5). - Отображение просмотров и хранимых процедур с информацией по ним. - Экспорт записей из Query Viewer. - Сохранение истории запросов и навигация по ним. - Поиск по F7 (для TC 5.51 и старше). - ... а что бы еще Вы хотели увидеть? Пишите. История версий: =============== [!] - Исправлено [+] - Добавлено [-] - Удалено [*] - Мелкие исправления --------------------- v. 1.3 - 20.01.2004 [+] Работа с несколькими списками серверов: - зарегистрированные в Enterprise Manager; - алиасы из Client Network Utility; - определяемый пользователем список. [!] Отображение серверов во вложенных группах Enterprise Manager - поддерживается любая степень вложенности. [!] Корректная работа с нерегулярными именами баз данных и таблиц [!] Освобождение памяти после закрытия Query Viewer. [!] Освобождение открытых соединений после закрытия Query Viewer. [*] Отдельные изменения в интерфейсе диалога Options. [+] В параметрах соединения прописывается свойство: Application Name=MS SQL Server Plugin for TC. [+] Отображение атрибутов для баз данных [+] [Query Viewer] Отдельное окно для полей типа TEXT, IMAGE, BINARY: - сохранение в файл/загрузка из файла; - работа с буфером обмена; - просмотр в виде text/image/hex. [+] [Query Viewer] Выполнение выделенной части скрипта (как в QA). [+] [Query Viewer] Просмотр результатов запроса, возвращающего несколько наборов данных. [+] [Query Viewer] Ограничение максимальной ширины колонок. [+] [Query Viewer] Установка таймаутов для соединения и запроса. [*] [Query Viewer] Быстрая сортировка мышью - добавлен стиль выделения как в Windows Explorer. [*] [Query Viewer] Выполнение запроса по F5 (как в QA). --------------------- v. 1.2 - 05.01.2004 Выход в свет Благодарности: ============== За ценные обсуждения и советы: Глебу Сазонову, Виталию Невзорову. Автору Total Commander Christian Ghisler, www.ghisler.com. Авторам свободных компонентов: Markus Stephany, merkes@mirkes.de - компонент Hex Editor, David Barton, www.cityinthesky.co.uk - DCPcrypt Cryptographic Component Library. Фирмам: Borland, Microsoft. Автор: ====== Олег Ювашев, Чикаго ( США ) Email: sqlplugin@comcast.net PS. Автор читает все письма. Ответ не гарантирую, но пожелания постараюсь учесть.