ADO Data Sources - FS плагин для Total Commander
================================================
Version 1.6.
Copyright (c) 2003-2006 by Oleg Yuvashev.


Данный плагин предоставляется "как есть". Автор не дает гарантий,
что плагин будет отвечать всем ожидаемым требованиям.
Автор не несет никакой ответственности за возможные последствия
работы с плагином.

Плагин больше не распространяется как freeware продукт.

Сейчас он распространяется как SendMePostcardIfYouCanWare продукт.
Для бессрочного использования плагина в полном объеме, вышлите, пожалуйста,
открытку с каким-либо видом Вашего места жительства по адресу автора:

        Oleg Yuvashev
        3739 Salem Walk, apt. BG
        Northbrook, IL  60062
        USA

Если же у Вас нет такой возможности (желания, времени, денег, открытки,
почты ...), Вы можете использовать плагин в полном объеме в течение
определенного периода времени.
Для версии 1.6 trial-период составляет девять лет девять месяцев и девять дней
со дня инсталляции плагина.
Вы можете послать открытку в любое время в течение данного срока чтобы стать
полноценным владельцем Вашей копии плагина.
Если же Вы хотите продолжать использовать эту версию плагина по истечении
trial-периода, подумайте, а не обновить ли Вам версию :-)

=========================================================


Плагин обеспечивает доступ к объектам серверных и локальных БД, допускающих
подключение с помощью технологии Microsoft ADO: OLE DB провайдеров (MS SQL,
Oracle, DB2, Sybase, InterBase, MySQL, MS Access...) и ODBC драйверов (Paradox,
dBASE, FoxPro, Excel, CSV...).

Данный плагин является развитием FS плагина для доступа к MS SQL серверам -
MS SQL Servers 1.3. Он создавался первоначально для доступа к MS SQL серверам
и написан с использованием набора ADO компонент для доступа к данным. Кроме
того, автор работает повседневно с MS SQL Server. Поэтому плагин имеет больше
возможностей при работе с MS SQL серверами, чем с другими источниками данных.


Возможности плагина:
====================

- Простое визуальное создание списка используемых соединений.
    Добавить соединение - F7 или двойной клик на пункте "- Add Connection -".
    Удалить соединение  - F8, Del или Right Menu - Delete.
    Свойства соединения - Alt+Enter или Right Menu - Properties.
  Список соединений хранится в файле connections.ini в каталоге плагина.

- Свойства соединения:
    Connection Name - можно использовать любое допустимое в файловой системе
    имя для удобной идентификации соединения.
    Connection String - можно построить используя стандартный ADO-диалог.
    Login type - если подключение к соединению требует аутентификации
    (ввода пользовательского логина и пароля) вы можете выбрать один
    из четырех вариантов аутентификации:

      - Однократный запрос логина и пароля при первой установке соединения.
        Введенные данные сохраняются в памяти плагина до конца текущей сессии
        Total Commander.

      - Запрос логина и пароля при каждом входе в соединение. Доступ к папкам
        и объектам внутри соединения не требует повторной аутентификации.
        (Из-за особенностей взаимодействия FS-плагинов с TC последнее может
         иногда нарушаться. Работа с плагином в обеих панелях TC, переходы с
         использованием Directory Menu (Ctrl-D) или списка ранее посещенных
         каталогов (Alt-Right/Left/Down) могут привести к "лишним" диалогам
         ввода логина/пароля.)

      - Постоянное хранение логина и пароля в зашифрованном виде.
        Для шифрования сохраняемых логина и пароля в каталоге плагина должна
        находиться библиотека crsqlwfx.dll. Более подробная информация о ней
        дана в разделе "Установка".
        Кроме логина и пароля для соединения плагин в этом варианте может
        шифровать и другие конфиденциальные параметры соединения, специфичные
        для того или иного провайдера.
        Сейчас плагин шифрует дополнительно пароль для базы данных MS Access.
        Если Вы хотите добавить еще и другие параметры - пишите мне.

      - Постоянное хранение логина и пароля в строке подключения в явном виде.
        Не требует постоянной аутентификации, но при этом Ваша персонально
        важная информация - логин и пароль - ХРАНЯТСЯ В ОТКРЫТОМ ВИДЕ.

        ВНИМАНИЕ:  Это крайне нежелательный вариант аутентификации!
                   Забота о Вашей приватности - в Ваших руках!

- Дополнительные Свойства соединения:
  В дополнение на вкладке "Провайдер" можно указать:
  - Конфигурационный файл для соединения.
    Эти файлы с расширением .pcf находятся в подкаталоге Provider
    главного каталога плагина.
    Они обеспечивают гибкую настройку различных параметров плагина для разных
    серверов баз данных, в том числе решение проблемы [table name].[schema].
    В настоящее время с плагином распространяются конфигурационные файлы для
    MS SQL Server, Oracle и default (хорош для ODBC подключений).
    Я постарался дать подробные комментарии к каждому из параметров и надеюсь,
    что они помогут Вам создать файлы для используемых Вами баз данных.
    ВНИМАНИЕ:   !!!  Специалисты в бласти различных БД   !!!
              Создав и настроив новый конфигурационный файл для подключения к
              какому-либо новому провайдеру или БД, не забудьте поделиться
              своим опытом с другими пользователями плагина.
              Высылайте новые конфигурационные файлы на мой email адрес:
                sqlplugin<at_sign>gmail.com.

    ВНИМАНИЕ: Если Вы подключаетесь к MS SQL Server (не через ODBC), я рекомендую
              оставить установленным флажок "Use internal plugin procedures for
              MS SQL Server"

  - Файл для подсветки синтаксиса SQL выражений в окне QueryViewer для данного
    диалекта SQL. Эти файлы с расширением .hgl находятся в подкаталоге Provider
    главного каталога плагина.

- Для одноразового временного подключения к какому-либо источнику данных без
  организации постоянного соединения выберите в списке соединений папку
  "- Temporary Connection -".
  По окончании работы с временным соединением оно будет закрыто, использованные
  для подключения логин и пароль будут "забыты".

- Плагин показывает иерархию:
    Соединения
     |
     +-->  Каталоги (Databases в MS SQL)
            |
            +-->  Группы объектов (таблицы пользователя, системные таблицы,
                   |               представления (views), хранимые процедуры)
                   |
                   |  (некоторые группы могут быть пустыми)
                   |
                   +-->  Объекты БД

- Отображаемые колонки TC:
    Имена соединений, каталогов и объектов БД (таблиц, представлений,
    хранимых процедур) отображаются в колонке <Name>.
    Если соединение поддерживает различные схемы (MS SQL, Oracle, DB2, ...),
    имя схемы отображается как расширение объекта БД (напр. employee.dbo).
    Если OLE DB провайдер возвращает даты создания каталогов и объектов БД -
    они отображаются в колонке <Date>.

- Enter или двойной клик мышью над объектом (таблица, представление, ХП)
  вызывает внутренний листер/редактор запросов - QueryViewer (далее - QV).
  Возможны просмотр и редактирование записей объекта.

  Для таблиц и представлений выполняется запрос SELECT для выбранного объекта.
  В целях ускорения просмотра для больших таблиц можно задать ограничение
  выводимого диапазона записей в QV с помощью условия SELECT TOP <N>.
  Использование условия TOP и параметр для него задаются на странице
  "QueryViewer" в диалоге конфигурации плагина.
  Там же можно установить возможность открывать QV без выполнения запроса.

  Для хранимых процедур формируется и отображается окне редактирования
  (но НЕ выполняется при входе) запрос вида
    EXEC <SP_Name> @Par1 = ?, @Par2 = ?
  Курсор при этом устанавливается на первый знак вопроса (если СП имеет
  параметры). Вы можете доввести значения параметров и затем выполнить запрос
  вручную.

  Подробнее о возможностях QueryViewer смотрите ниже.

- Операция Total Commander F3 показывает описание объекта:
    для таблиц - в виде CREATE TABLE (поля, индексы, PRIMARY & FOREIGN KEYS);
    для представлений - CREATE VIEW ... ;
    для хранимых процедур - CREATE PROCEDURE ...
  К сожалению, многие OLE DB провайдеры не возвращают информацию для предста-
  влений и хранимых процедур, соответственно, ничего не покажет и плагин.

- Операция Total Commander F5 копирует описание объекта в виде текстового
  файла с расширением .sql на соседнюю панель.

- Операция Total Commander F6 экспортирует содержимое объекта (таблицы или
  представления) в соседнюю панель. Формат для экспорта (Excel, HTML,
  XML(Microsoft), CSV, Plain Text, RTF) можно выбирать каждый раз при экспорте
  или задать на вкладке "Export" диалога конфигурации плагина.
  ВНИМАНИЕ:  При экспорте больших таблиц или представлений Вы можете
             основательно замедлить работу Вашего компьютера.
             Оценки скорости экспорта смотрите ниже при описании QV.

  F5 и F6 работают также и с каталогами. То есть одним нажатием клавиши Вы
  можете скопировать описание (или содержимое) целой базы данных или, даже,
  целого сервера.
  На вкладке "Export" диалога конфигурации плагина можно выбрать режим чтобы
  действия по F5 и F6 поменялись местами.

- Вы можете "копировать" файлы в панель плагина (операции F5 и F6).
  Разрешается "копировать" только файлы с расширением ".sql".
  При этом в базе данных НЕ БУДЕТ создано каких-либо новых объектов.
  Вместо этого открыто окно QueryViewer с текстом SQL-скрипта из файла.
  Запрос НЕ БУДЕТ выполнен автоматически, Вы можете выполнить его вручную.

  Также допустимо "редактирование" объектов БД (операция Total Commander F4).
  При этом в ассоциированный с TC редактор будет загружен SQL-скрипт с описанием
  объекта (тот же, что для F3). После сохранения измененного "файла" скрипт
  будет загружен в окно QueryViewer, где Вы можете выполнить его вручную.

- Поиск в плагине по Alt+F7, в том числе с заданием текста для поиска. (Поиск
  производится в описаниях объектов, а не в содержимом таблиц!)

- Объекты с нерегулярными именами (содержащие пробелы, кириллицу, ряд
  специальных символов или совпадающие с зарезервированными словами) корректно
  поддерживаются плагином, они отображаются в разделителях '[' и ']'.
  (Используется список зарезервированных слов для MS SQL Server).

- Папка "- Stored Queries -" корневого каталога плагина содержит сохраненные
  Вами ранее запросы из произвольных соединений.
  Сохраненные запросы можно удалять с помощью F8 (удаляется только описание
  запроса, данные не теряются!)
  Подробнее о сохранении запросов смотрите ниже.

- Операции Total Commander F7 и F8 работают только в списке соединений и в
  папке "- Stored Queries -" (только F8), для объектов БД они не поддерживаются.

- На странице "General" в диалоге конфигурации плагина можно поменять язык 
  интерфейса плагина.
  В данный момент доступны английский и русский языковые файлы, они расположены
  в подкаталоге "Language" каталога плагина.
  Я прошу всех заинтересованных пользователей плагина добавлять новые языки
  для интерфейса и исправлять ошибки и огрехи в существующих.
  Высылайте новые языковые файлы на мой email адрес:
     sqlplugin<at_sign>gmail.com.


Возможности QueryViewer - внутреннего листера/редактора запросов:
=================================================================

- Цель QueryViewer - выполнение произвольных SQL-запросов (SELECT, INSERT,
  UPDATE, DELETE, EXECUTE, CREATE <smth>...), просмотр и редактирование
  результатов запроса.
  Диалог конфигурации QV доступен через пункт меню Options.

  Если запрос возвращает набор записей (SELECT, EXECUTE), результирующий набор
  выводится в DataGrid для дальнейшего просмотра и редактирования. В строке
  статуса отображается количество возвращенных записей и время выполнения
  запроса.

  Для запросов, не возвращающих набора записей, просто выводится сообщение
  о выполнении данного запроса (в случае успешного выполнения, разумеется).
  Для запросов INSERT, UPDATE и DELETE плагин пытается также вывести количество
  записей, обработанных данным запросом (к сожалению, может не работать,
  зависит от OLE DB провайдера).

- Применяемый в QV компонент TDBGridEh из библиотеки EhLib Дмитрия Большакова
  (www.ehlib.com) значительно расширяет функциональность стандартных DataGrid,
  использовавшихся в предыдущих версиях плагина.
  Полное описание возможностей этого компонента Вы можете найти на сайте автора.
  Ниже перечислены возможности TDBGridEh (далее - сетка), используемые в QV.
  Некоторые из них можно включить/отключить в меню "Options -> DBGridEh Options".
  Такие возможности описаны с пометкой "(ОТКЛ)".
  Компонент был доработан автором плагина, поэтому некоторые из нижеописанных
  возможностей могут отличаться от таковых для оригинального компонента.

    Сетка позволяет выделять строки, столбцы и прямоугольные области ячеек.
    Используя Ctrl и Shift можно выделять произвольные наборы строк и столбцов.
    Многие нижеописанные операции (печать, экспорт, буфера обмена) работают с
    выделенной областью сетки.

    Копирование выделенной области в буфера обмена, очистка выделенной области.

    Переключение сетки в режим read-only (Ctrl+R, меню "DBGridEh Options"),
    отображение этого режима в строке статуса.

    Изменение высоты строк данных.

    Отсечение длинного текста в ячейке с отображением многоточия. Отображение
    подсказки (ToolTips) для усеченного текста.

    Отображение memo-поля в ячейке как текст (ОТКЛ). Подсказки (ToolTips) для
    таких ячеек (ОТКЛ).

    Автоматическое отображение checkbox'ов для Boolean-полей (ОТКЛ).

    Выпадающий календарь для полей типа дата/время. ВременнАя часть поля может
    сохраняться при изменении даты через календарь (ОТКЛ).

- Компонент TPrintDBGridEh из библиотеки EhLib позволяет вывести на печать
  данные из выделенной области сетки или весь набор записей и обеспечивает
  следующие возможности:

    Предварительный просмотр выводимых данных.
    Расширение высоты строки по вертикали при печати, чтобы умещать весь текст.
    Масштабирование сетки чтобы уместить ее по ширине одной страницы.

    Печать колонтитулов, в которых Вы можете размещать статичный текст, а также
    макросы для:
      номера текущей страницы - &[Page];
      общего числа страниц    - &[Pages];
      текущей даты            - &[ShortDate], &[Date] или &[LongDate];
      текущего времени        - &[Time];
      количества записей      - &[PrnRecs].
    Текст для колонтитулов (кроме нижнего левого) можно задать в языковом
    файле плагина, секция [QueryForm], раздел - printed texts.

    Печать RTF-текста перед и после сетки. В них Вы можете размещать формати-
    рованный текст, макросы для колонтитулов, а также дополнительные макросы:
      имя соединения               - %[CONNECTION];
      имя сервера                  - %[SERVER];
      имя базы данных (каталога)   - %[DATABASE];
      текст локального фильтра     - %[LOCAL_FILTER];
      тип выделенной области сетки - %[PRN_SELECTION];
      полный текст запроса         - %[QUERY_TEXT].
    Подстановка макросов будет произведена с учетом форматирования.
    Тексты загружаются из RTF-файлов указанных в языковом файле плагина.

- При редактировании любому полю можно присвоить значение NULL комбинацией
  клавиш Ctrl+0 (ноль).

- Сетка позволяет применить к результату запроса два типа фильтра: серверный
  и локальный (переключение по Ctrl+L или в меню "DBGridEh Options").
  Для серверного фильтра сетка перестраивает и выполняет новый запрос с
  измененной фразой WHERE. Локальный фильтр выполняется в памяти на клиентской
  стороне без обновления запроса.
  Для формирования выражения для фильтра сетка выводит под заголовками полей
  специальную строку, где пользователь может ввести критерии отбора данных
  для любой из колонок. Выражения для различных колонок объединяются по AND.
  Фильтр устанавливается после ввода Enter в строке фильтра.

  Сетка позволяет задавать для колонок выражения для фильтра вида:
    [Operator1] Operand1 [)] [AND|OR Operator2 Operand2 [)] ]
  Каждый из операндов может быть строкой, числом или датой.
  Допустимы следующие операторы:
    =                 - равенство, default для числа или даты
    <> , !=           - неравенство
    > , < , >= , <=   - (тут все понятно)
    ~                 - LIKE, default для строки
    !~                - NOT LIKE (не работает для локального фильтра)
    in (              - есть в списке значений (список через запятую)
  (если оператор пропущен, используется default оператор).

- Левый клик по заголовку колонки выполняет запрос на сервере с сортировкой
  по этой колонке (фраза ORDER BY). Следующие клики по заголовку будут
  изменять порядок сортировки (ASC <=> DESC).
  Сортируемая колонка выделяется цветом заголовка (цвет можно настроить
  в диалоге конфигурации плагина), там же рисуется маркер направления сортировки.
  Ctrl+левый клик позволяет производить сортировку более чем по
  одной колонке, а также полностью отменить сортировку в запросе.

- Alt+правый клик по какой-либо ячейке данных устанавливает фильтр (локальный
  или серверный) вида "<выбранная колонка> = <выбранному значению>".
  Alt+Shift+правый клик позволяет устанавливать фильтры по нескольким
  колонкам (фильтры объединяются с помощью AND).
  Alt+Ctrl+правый клик отменяет ранее поставленные фильтры.

  При постановке серверного фильтра мышью исходный фильтр запроса (фраза WHERE)
  может сохраняться и объединяться по AND с фильтрами, устанавливаемыми мышью.
  За это отвечает флаг "Save original query filter" на вкладке "QueryViewer"
  диалога конфигурации плагина.

- Ctrl+правый клик по заголовку колонки скрывает данную колонку, делает
  ее невидимой.
  Ctrl+Shift+правый клик в области заголовков колонок показывает все
  ранее скрытые колонки.
  Вместе с возможностями изменять размеры колонок и их порядок (левый клик
  на заголовке и потянуть), скрытие колонок позволяет гибко настраивать
  внешний вид результатов Ваших запросов.

- Возможно выполнять только выделенную часть скрипта (как в MS Query Analyzer).
  ВНИМАНИЕ:  При этом быстрая сортировка и фильтрация мышью РАБОТАЮТ НЕКОРРЕКТНО!

- Имя сервера и текущей базы данных отображаются в строке статуса в нижней
  части окна QV.

- Если запрос возвращает несколько наборов записей (например EXEC SP_HELP...),
  возможна навигация по всем этим наборам (Ctrl+Up, Ctrl+Down; или меню Query).
  Номер текущего набора записей и их общее количество отображаются в строке
  статуса в нижней части окна QV.
  ВНИМАНИЕ:  При этом быстрая сортировка и фильтрация мышью НЕ РАБОТАЮТ!

- Вы можете производить инкрементный поиск в колонках сетки (возможность
  компонента TDBGridEh). Этот режим индицируется желтым цветом маркера текущей
  записи.
  По мере ввода новых символов сетка будет искать запись, для которой данное
  поле совпадает с Вашим вводом, и позиционироваться на нее. Можно также вводить
  специальные комбинации клавиш:
    Ctrl+Enter       - для поиска следующего совпадения и
    Ctrl+Shift+Enter - для поиска предыдущего совпадения.
  Вход в режим инкрементного поиска производится комбинацией Ctrl+F, выход
  из него - по клавише Esc.

- Можно установить также режим "быстрого" инкрементного поиска (ОТКЛ).
  При начале ввода символов вместо редактирования ячейки будет начинаться
  инкрементный поиск (используйте F2 для редактирования). Выход из поиска
  происходит через примерно 1.5 секунды после ввода последнего символа.
  Стандартный вход (Ctrl+F) и выход (Esc) также возможны в режиме "быстрого"
  поиска.
  Когда сетка переключена в режим read-only, "быстрый" инкрементный поиск
  включается автоматически.

- Результаты запроса можно экспортировать во внешние файлы (возможность
  компонента TDBGridEh). Поддерживаются форматы: MS Excel, HTML, XML(Microsoft),
  CSV, Plain Text, RTF. Экспортируются данные для выделенной области сетки,
  при отсутствии выделения - для всей сетки.

  Ниже приводятся оценки времен выполнения экспорта и размеров выходных файлов
  для некоторых выходных форматов:

      Record|          Time, sec.            |        Size, MB
      Count | Query*  XML   Excel  HTML  CSV | XML   Excel  HTML   CSV
     =======|================================|=========================
       1000 |  0.5    < 1      1     1     1 | 0.3    0.4    0.5   0.1
     -------|--------------------------------|-------------------------
      10000 |    2     1       7    10     5 | 2.2    2.2   18.1   0.8
     -------|--------------------------------|-------------------------
      50000 |   19     3      36    52    27 | 11      11    90    4.4
     -------|--------------------------------|-------------------------
     100000 |   25     5      75   107    55 | 23      22   180    8.8
     ------------------------------------------------------------------
        * - время выполнения запроса в DBGridEh
       Тестировалось на конфигурации:
         CPU - 1 GHz, RAM - 376 MB, Windows XP+SP1, MS SQL Server 2000
       Таблица:
          > 3 млн. записей, 10 полей, 70 байт/запись.

- Отформатированный Вами должным образом запрос можно сохранить в папке
  "- Stored Queries -" корневого каталога плагина (Ctrl+S или меню Query)
  для последующего быстрого выполнения. Сохраняются имя соединения, текущий
  текст запроса и настройки колонок (ширина, порядок, скрытые колонки).
  Вы должны лишь дать информативное название Вашему сохраненному запросу.

  Если в дальнейшем Вы удалите какое-либо из Ваших соединений, все сохраненные
  запросы, ссылающиеся на него, также будут удалены.

  ВНИМАНИЕ:  Если Вы сохраняете в "- Stored Queries -" запрос, выполненный
             из временного подключения ("- Temporary Connection -"), то будет
             сохранено не имя соединения, а строка подключения, в которой могут
             быть явно прописаны Ваши логин и пароль.
             Это небезопасно!

- Возможно перемещение по истории выполнявшихся в QV запросов (Ctrl+Left,
  Ctrl+Right; или меню History). В список истории помещаются различные
  запросы, выполненные ранее командой Execute (F5).
  Запросы, генерируемые мышью (быстрая сортировка и фильтрация), в список не
  заносятся.
  Если пункт меню "History - Run Immediately" отмечен, сразу при переходе к
  предыдущему/следующему запросу он будет отправлен на выполнение.

- Специальная кнопка (шорткат Ctrl+W, пункт в меню Options) позволяет
  ограничить максимальную ширину колонок таблицы.
  Максимальная ширина колонки в этом режиме задается на странице
  "QueryViewer" в диалоге конфигурации плагина.

- В диалоге конфигурации плагина можно также устанавливать:
    - таймауты для соединения и запроса в секундах;
    - формат для отображения полей типа дата/время.

- В панели SQL выражений в QueryViewer действует подсветка синтаксиса.
  Конфигурационные файлы для подсветки синтаксиса различных диалектов SQL
  (файлы с расширением .hgl) находятся в подкаталоге Provider главного каталога
  плагина.
  Детали реализации подсветки и приложение для изменения файлов подсветки можно 
  найти на сайте авторов универсального highlighterа для SynEdit
  (www.delphist.com/UniHighlighter.html).

- В отдельном окне (BLOB Viewer) можно просматривать и редактировать поля
  типа BLOB (TEXT, IMAGE, BINARY). Для этого кликните мышью по BLOB полю
  или нажмите F2, находясь в этом поле.
  Возможности BLOB Viewer:
    - Просмотр данных в виде Text/Image/Hex/HTML (переключение в меню View).
    - Прямое редактирование данных во режимах просмотра Text и Hex.
    - Сохранение в файл и загрузка из файла.
    - Работа с буфером обмена - Cut, Copy, Paste (в режиме HTML - только Copy).
    - Очистка BLOB поля - Clear.
    - Прямой drag-and-drop файлов в окно BLOBViewer - аналог загрузки из файла.
    - Переключение BLOB Viewer в режим read-only при включении этого режима
      в QueryViewer.
    - Выбор шрифта для режимов Text и Hex.
    - В режиме Image - работа c большинством графических форматов:
      BMP, ICO, EMF, WMF, JPEG, GIF, PNG, PCX, PIC, TGA и другими.
      Формат и параметры изображения распознаются при загрузке IMAGE поля.
      Сохранение изображения в "родном" формате, а также в форматах BMP, JPEG, TGA.
      Возможность центрирования изображения в окне BLOB Viewer.


Дополнительные возможности плагина при работе с MS SQL серверами:
=================================================================

- Отображаются только не пустые группы объектов, дополнительной группой
  показываются пользовательские функции.

- Дополнительно отображаемые данные:
    В колонке <Size>:
      для баз данных     - общий размер файлов БД в байтах;
      для групп объектов - количество объектов в группе;
      для таблиц         - количество записей в таблице.
    В колонке <Attr> для баз данных - атрибуты БД:
      read-only - для read-only БД;
      hidden    - для offline БД;
      system    - если работать с БД может только ее владелец (dbo use only).

    ВНИМАНИЕ:  запросы к системным таблицам производятся без обновления
               статистики (dbcc updateusage), поэтому информация в колонке
               <Size> может быть неактуальной.

- Оценка количества записей в таблице позволяет более гибко использовать
  условие TOP при открытии таблицы в QV.
  Если количество записей в таблице меньше значения параметра для условия TOP
  в диалоге конфигурации плагина, запрос SELECT будет выполнен без TOP <N>.

- По F3 и F5 выдается более подробная информация об объекте БД. Для таблиц
  это DEFAULT, CHECK, PRIMARY KEY и FOREIGN KEY CONSTRAINTS, TRIGGERS.
  Выдаваемая информация максимально близка к тому, что выдает команда
  "Generate SQL Script..." в SQL Server Enterprize Manager.
  Настроить вид получаемого скрипта можно на странице "Script Options"
  в диалоге конфигурации плагина.

- В QV компонент TDBGridEh был изменен для улучшения работы с быстрой
  сортировкой и фильтрацией мышью, изменения оптимизированы под синтаксис
  MS Transact-SQL. Для других провайдеров на сложных запросах (вычисляемые
  поля, алиасы для полей, сложные соединения таблиц - JOINs) что-то может
  работать некорректно.


Протестированные конфигурации:
==============================

Работа плагина проверялась в конфигурациях:
  ОС - WinXP, Win2000, WinNT4, Win98
  MS SQL Server - 7.0, 2000
  Другие серверные БД - Oracle, DB2, Sybase, InterBase, MySQL, Postgree.
  Локальные БД - MS Access, Paradox, dBASE, FoxPro, Excel, CSV файлы.


Установка:
==========

1. Распакуйте архив с плагином в выбранный вами каталог.

2. Установите FS плагин "MS_SQL.wfx" (см. Help к Total Commander).
   Плагин будет доступен в "Network Neighborhood" под именем "ADO Data Sources".

3. Библиотека Microsoft Data Access Components (MDAC) версии не ниже 2.1
   должна быть установлена на Вашем компьютере для работы плагина.
   Вы можете скачать ее последнюю версию с сайта Microsoft:
     http://msdn.microsoft.com/data/mdac/downloads/default.aspx
   Инструкции по установке библиотеки MDAC смотрите в статье "MDAC
   Installation" по ссылке:
     http://msdn.microsoft.com/library/en-us/dnmdac/html/data_mdacinstall.asp

4. Установка OLE DB провайдера или ODBC драйвера:
   Вы должны иметь OLE DB провайдер для каждой базы данных, к которой Вы хотите
   иметь соединение.
   Ряд провайдеров Вы будете иметь после установки MDAC: Microsoft провайдеры
   для SQL Server, Jet (MS Access), Oracle. Также устанавливается провайдер
   для ODBC Drivers, предоставляющий доступ к большинству локальных БД (Access,
   dBase, FoxPro, Paradox), а также к файлам Excel и текстовым файлам данных
   в формате CSV.
   Многие БД при инсталляции устанавливают также "родные" OLE DB провайдер
   и/или ODBC драйвер для доступа к ним - Oracle, DB2, Sybase...
   Для прочих БД (Interbase, FireBird, MySQL...) Вы сами должны найти в
   Интернете и скачать (или купить :-)) соответствующий провайдер или драйвер.

   ВНИМАНИЕ:  количество и качество информации, выдаваемой плагином, во многом
              определяется выбором провайдера и его настройками.
              Не будучи специалистом по конкретным БД (кроме MS SQL Server),
              я использовал при тестировании самые доступные провайдеры с
              минимальными настройками (все по умолчанию).
              Если у Вас есть возможность (и знания) попробовать в деле разные
              провайдеры для какой-то БД, поиграться с их настройками и найти
              оптимальные - сделайте это, пожалуйста, и сообщите всем другим
              пользователям.

5. Установка библиотеки для шифрования:
   Для шифрования сохраняемых данных о пользовательских логинах и паролях
   в каталоге плагина должна находиться библиотека crsqlwfx.dll.

   В отсутствие этой библиотеки Вы должны либо вводить логин и пароль при
   каждом подключении к Вашим соединениям, либо хранить Ваши логины и пароли
   в явном виде в ini-файле.

   Поставляемая с плагином библиотека 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.


Пишите о проблемах
==================
плагина по адресу: sqlplugin<at_sign>gmail.com
При этом сообщайте, пожалуйста:
  - название и версию OLE DB провайдера или драйвера ODBC
    (и еще хорошо бы сразу и линк на него),
  - строку подключения к соединению,
  - особенности Вашей БД.

Некоторые из возникающих проблем связаны с ошибками конкретных
OLE DB провайдеров.
Если Вы можете, попробуйте протестировать своего OLE DB провайдера, 
используя ту же строку подключения и какое-нибудь другое приложение. 
(Для пользователей Borland рекомендую приложение
   {Borland_Folder}\Demos\Ado\AdoTest\ADOTest.exe). 
В любом случае, напишите о проблеме мне.


История версий:
===============
[!] - Исправлено
[+] - Добавлено
[-] - Удалено
[*] - Мелкие исправления

------------------------------------
ADO Data Sources v. 1.6 - 14.03.2006

[+]  Подсветка синтаксиса SQL выражений в QueryViewer.
[+]  Конфигурационные файлы для соединения обеспечивают гибкую настройку
     различных параметров плагина для разных серверов баз данных (смотрите
     "Возможности плагина")
[*]  Ошибка "... multiple recordsets..." для некоторых БД - смотрите
     описание конфигурационных файлов.
[*]  [QueryViewer] В предыдущей версии "потерялось" сохранение по Ctrl+S
     настроек колонок запроса. Восстановлено.

------------------------------------
ADO Data Sources v. 1.5 - 07.12.2005

[!!!]  По отзывам бета-тестеров, исправлена проблема с ошибкой 216 при
       инсталляции плагина на компьютерах с гипертрейдингом. Лично сам
       я для этого не делал ничего, просто компилировал новую версию на
       Delphi 2005 (предыдущая была на Delphi 7).
[!]  Ошибка при формировании длинных (> 4000 символов) описаний объектов
     (stored procedures) по F3, F5.
[+]  Возможность менять язык интерфейса плагина.
     Сейчас доступны английский и русский языковые файлы.
[+]  "Копирование" по F5 в панель плагина.
[+]  "Редактирование" по F4 описаний объектов БД.
[+]  Различные форматы экспорта данных по F6.
[+]  Возможность поменять местами действия плагина по F5 и F6 .
[*]  После выхода из временного соединения строка подключения к нему очищается.
[*]  Возможность открывать QV без выполнения запроса.
[*]  Изменен внешний вид диалога конфигурации.
[+]  Больше опций на странице "Script Options" диалога конфигурации.

Изменения в QueryViewer.
------------------------
[+]  Стандартная сетка заменена на компонент TDBGridEh из библиотеки EhLib
     Дмитрия Большакова. Новая сетка позволяет предварительный просмотр и печать,
     экспорт, работу с буфером обмена для всей сетки и выделенных областей;
     установку серверных и локальных фильтров на набор записей; инкрементный
     поиск в колонках сетки
[!]  Не всегда корректная работа шорткатов.
[*]  Сохранение в "- Stored Queries -" запроса из временного подключения.
[*]  Переключение сетки в режим read-only.
[*]  Нельзя использовать Esc для выхода из QV, только Alt+F4.
[+]  [BLOBViewer] Просмотр данных в виде HTML.
[!]  [BLOBViewer] Не всегда корректная работа режима drag-and-drop.

------------------------------------
ADO Data Sources v. 1.3 - 20.09.2004

[+]  Новая (псевдо)папка в списке соединений "- Temporary Connection -" для
     временного подключения к какому-либо источнику данных без организации
     постоянного соединения.
[+]  Изменения в диалоге "Connection Properties" для повышения конфеденци-
     альность персональных данных:
       - Логин и пароль для соединения больше не отображаются в диалоге явно.
       - Добавлено шифрование пароля на БД для MS Access.
[+]  F6 копирует в соседний каталог содержимое таблицы или представления в
     формате CVS.
[+]  После удаления соединения (F8) удаляются и все связанные с ним
     сохраненные запросы из папки "- Stored Queries -".
[+]  При переименовании соединения обновляются описания всех связанных с ним
     сохраненных запросов.
[+]  [QueryViewer] Экспорт данных из запроса (два способа, форматы: Excel,
     HTML, XML(Microsoft), CSV, Plain Text, SYLK и DIF).
[+]  [QueryViewer] Полю можно присвоить NULL комбинацией Ctrl+0.
[!]  [QueryViewer] Нестабильная работа функции ограничения ширины колонок.
[*]  [QueryViewer] Переход в BLOBViewer не только мышью, но и по F2.
[*]  [QueryViewer] Имена соединения и каталога отображаются теперь в крайних
     правых секциях StatusBar внизу окна.
[+]  [BLOBViewer] Image Mode - работает c большинством графических форматов:
     BMP, ICO, EMF, WMF, JPEG, GIF, PNG, PCX, PIC, TGA и другими
     (загрузка из файла, сохранение в файл, работа с Clipboard, drag-and-drop).
[+]  [BLOBViewer] Hex Mode работает в режиме read/write.
[+]  [BLOBViewer] Выбор шрифта для режимов Text и Hex.
[+]  [BLOBViewer] Прямой drag-and-drop файлов в окно - аналог функции
     "Load from file...".
[*]  Изменился интерфейс форм QueryViewer и BLOBViewer.
[+]  В диалоге конфигурации новые закладки: "Excel Export" и "Script Options".

------------------------------------
ADO Data Sources v. 1.1 - 10.04.2004

[++] Теперь плагин работает не только с MS SQL Server, но и с любыми БД,
     допускающими подключение с помощью OLE DB провайдеров и ODBC драйверов.
[+]  Новая организация списка подключений с возможностями добавления и удаления.
[+]  Визуальная настройка свойств соединения.
[+]  Отображение представлений (views) и хранимых процедур, а также пользова-
     тельских функций (для MS SQL Server).
[+]  Описание объектов БД по F3, F5.
[+]  Папка "- Stored Queries -" для быстрого доступа к ранее сохраненным запросам.
[+]  [QueryViewer] Скрытие и отображение колонок запроса одним щелчком мыши.
[+]  [QueryViewer] Сохранение истории выполнявшихся запросов и навигация по ним.
[+]  [QueryViewer] Сохранение запроса вместе с его форматированием для
     последующего быстрого доступа.

----------------------------------
MS SQL Servers v. 1.3 - 20.01.2004

[+]  Работа с несколькими списками серверов:
       - зарегистрированные в Enterprise Manager;
       - алиасы из Client Network Utility;
       - определяемый пользователем список.
[!]  Отображение серверов во вложенных группах Enterprise Manager -
     поддерживается любая степень вложенности.
[!]  Корректная работа с нерегулярными именами баз данных и таблиц
[!]  Освобождение памяти после закрытия QueryViewer.
[!]  Освобождение открытых соединений после закрытия QueryViewer.
[*]  Отдельные изменения в интерфейсе диалога Options.
[+]  В параметрах соединения прописывается свойство:
       Application Name=MS SQL Server Plugin for TC.
[+]  Отображение атрибутов для баз данных
[+]  [QueryViewer] Отдельное окно для полей типа TEXT, IMAGE, BINARY:
       - сохранение в файл/загрузка из файла;
       - работа с буфером обмена;
       - просмотр в виде text/image/hex.
[+]  [QueryViewer] Выполнение выделенной части скрипта (как в QA).
[+]  [QueryViewer] Просмотр результатов запроса, возвращающего несколько
     наборов данных.
[+]  [QueryViewer] Ограничение максимальной ширины колонок.
[+]  [QueryViewer] Установка таймаутов для соединения и запроса.
[*]  [QueryViewer] Быстрая сортировка мышью - добавлен стиль выделения
     как в Windows Explorer.
[*]  [QueryViewer] Выполнение запроса по F5 (как в QA).

----------------------------------
MS SQL Servers v. 1.2 - 05.01.2004

  Выход в свет


Благодарности:
==============

Автору Total Commander
  Copyright © 1995-2006 by Christian Ghisler, C. Ghisler & Co.
  www.ghisler.com.

Авторам используемых freeware библиотек и компонентов:
  библиотека EhLib,       version 3.6,
    Copyright (C) 1998-2004 by Dmitry V. Bolshakov  (www.ehlib.com)
  библиотека GraphicEx,   version - 9.9,
    Copyright (C) 1999-2003 by Mike Lischke         (www.lischke-online.de)
  компоненты Toolbar2000, version 2.1.5,
    Copyright (C) 1998-2004 by Jordan Russell       (www.jrsoftware.org)
  компонент TMPHexEditor, version 10-25-2002,
    Copyright (C) 1997-2002 by Markus Stephany      (www.mirkes.de)
  компонент ThtmlLite,    version 7.62,
    Copyright (C) 1995-2005 by L. David Baldwin     (www.pbear.com)
  библиотека DCPcrypt,    version 2.0,
    Copyright (C) 1999-2003 by David Barton         (www.cityinthesky.co.uk)
  библиотека SynEdit ,    version 1.2,
    by Michael Hieke                                (synedit.sourceforge.net)
  UniHighlighter компонент для SynEdit,
    by Vitaly Nevzorov and Kirill Burtsev           (www.delphist.com/UniHighlighter.html)

Фирмам:
  Borland,
  Microsoft.


Автор:
======

Олег Ювашев, Чикаго ( США )
Email: sqlplugin<at_sign>gmail.com

PS.  Автор читает все письма.
     Ответ не гарантирую, но пожелания постараюсь учесть.




