Мой клиент - стоматологическая практика, купившая часть программного обеспечения для управления практикой. Это программное обеспечение было установлено на их локальном сервере, включая базу данных пациентов, расписание и всевозможные медицинские записи. Теперь они хотят, чтобы я написал некоторые утилиты для них, которые не были предоставлены с их пакетом, и для этого мне нужна возможность запросить эту базу данных.Как получить схему базы данных скрытой БД?
Я пробовал называть техническую поддержку производителей программного обеспечения (Patterson/EagleSoft), и трудно найти тех, кто понимает технологию достаточно, чтобы ответить на мои вопросы. Насколько я могу судить, API для их программного обеспечения отсутствует, и, по понятным причинам, они неохотно говорят мне, как обращаться к БД напрямую, программно. У них есть интерактивное окно запросов, но, очевидно, это не хорошо для написания автоматизированных запросов. Все, что они позволят, это то, что где-то есть база данных SQL Server, но драйверы ODBC для подключения к ней - это драйверы SQL Anywhere (да?).
Так что я искал на сервере и не мог найти файлы базы данных. Затем я обнаружил, что установка создает своего рода проприетарную виртуальную машину, которая видна только программному обеспечению EagleSoft. Но в то время как они очень хорошо изолировали свою БД в слоях обфускации, они оставили открытым драйвер ODBC, который действительно является подключением SQL Anywhere.
Теперь, после этой увлекательной и длинной преамбулы, вот мой вопрос: какие запросы я могу запустить над этим подключением ODBC для опроса БД относительно его структуры? Если это СУБД SQL Server, я мог бы использовать таблицу sysobjects, но я не полностью понимаю, как вы можете использовать соединение ODBC SQL Anywhere для подключения к базе данных MSSQL. И если они меня дезинформировали, а на самом деле это SQL Anywhere DB, какие запросы запускать для работы с базой данных?
И если есть кто-то еще, кто когда-либо преуспел в том, чтобы действительно запрашивать EagleSoft (или любой подобный проприетарный пакет) - скажите, пожалуйста, как вы это сделали!
@Marc Gravell: API ODBC имеет общую возможность для интроспекции схемы, и это будет не очень локализованный ответ на этот вопрос. – bmargulies