Какой вариант предпочтительней при разработке интерфейса базы данных, связанного с SQL Server. Я вижу два варианта. Это adp проект или mdb + adodb.recordset, когда открывается соединение и форма привязывается к рекорсету: Например, set me.recordset = rst
А) Связка mdb+ado в том виде как Вы планируете работать кажется мне очень трудоемкой в плане разработки интерфейса
Б) adp проект - это хорошее решение, но и у него есть недостатки, т.к. возможно подключение только 1 базы SQL, да и объекты все будут открыты в adp проекте. А защитить файл adp и ade сложно.
В) Перспективным решением мне кажется будет связка mdb + привязанные таблицы. Существует несколько вариантов: таблицы Access (dao соединение), таблицы и запросы SQL Server (ODBC драйвер или OLEDB соединение), Таблицы MySQL (ODBC драйвер), Таблицы Excel (OLEDB) и т.п.
• Плюсы. Таким образом, из одного интерфейса базы данных мы можем организовать соединение с несколькими разнородными - гетерогенными базами данных и использовать все достоинства mdb проекта: конструктор запросов, функции VBA в запросах, перекрестные запросы и т.п. Привязка источников данных к формам ведется обычным способом.
• О подключении к серверам. Названия таблиц и строки соединения для интерфейса храним в отдельном файле конфигурации Config.mdb и шифруем строки соединения, чтобы нельзя было менять пользователю названия таблиц добавляем хэш MD5 для некоторых строк, например, так как сделано это для паролей: http://www.leadersoft.ru/Rus/Market/Db/Default.aspx?go=product&pid=409 . Можно данные хранить и в XML файле. Кому что больше нравится.
• Методы работы. Проект разрабатывается стандартным способом на Microsoft Access + привязка к таблицам Access. Далее когда решение создано перегоняем таблицы на SQL Server или My SQL. Есть бесплатные программы по этой теме. Затраты по времени 2-3 минуты: http://www.bullzip.com/products/a2m/info.php http://www.bullzip.com/products/a2s/info.php
• Запуск программы. При запуске базы данных пользователь выбирает вариант работы с Access, SQL Server, My SQL и далее нужная привязка таблиц создается автоматически в интерфейсе и привязанных библиотеках.
• Детали. Самое главное надо разработать интерфейс администратора, который будет быстро создавать или удалять привязку к таблицам через odbc, oledb, dao и сохранять в файле конфигурации. Такой интерфейс уже есть.
• О скорости. Если таблицы имеют много записей, то можно фильтры сохранять в таблице на сервере (например, по дате записи) для каждого пользователя и привязывать к ним запросы. Сами запросы легко привязать через ODBC или OLEDB при открытии базы данных и использовать как часть таблицы.
• О процедурах. Использовать процедуры с параметрами как привязанные таблицы, не получится. В этом случае, придется использовать adodb.recordset и привязывать его к форме. Такие варианты - более сложные в плане разработки интерфейса, переносимость проекта на другую базу данных ухудшается. Наверное, их не нужно использовать очень часто.