我的客户是一家牙科诊所,购买了一套诊所管理软件。该软件安装在他们的本地服务器上,包括患者数据库、时间表和各种医疗记录。现在他们希望我为他们编写一些他们的包中没有提供的实用程序,为此我需要能够查询这个数据库。
我尝试致电软件制造商 ( Patterson/EagleSoft ) 的技术支持,但很难找到足够了解该技术的人来回答我的问题。据我所知,他们的软件没有 API,可以理解的是,他们不愿意告诉我如何以编程方式直接查询数据库。他们确实有一个交互式查询窗口,但显然这对编写自动查询没有好处。他们只会说某处有一个 SQL Server DB,但连接到它的 ODBC 驱动程序是 SQL Anywhere 驱动程序(嗯?)。
所以我在服务器上四处搜索,找不到任何数据库文件。然后我发现安装创建了某种专有虚拟机,它只对 EagleSoft 软件可见。但是,虽然他们非常擅长在混淆层中隔离他们的数据库,但他们仍然打开了一个 ODBC 驱动程序,这确实是一个 SQL Anywhere 连接。
现在,在引人入胜且冗长的序言之后,这是我的问题:我可以在这个 ODBC 连接上运行哪些查询来询问数据库的结构?如果它是下面的 SQL Server DB,我可以使用 sysobjects 表,但我不完全掌握如何使用 SQL Anywhere ODBC 连接来连接到 MSSQL DB。如果他们误导了我并且它确实是下面的 SQL Anywhere 数据库,那么要运行哪些查询来获取数据库结构?
如果还有其他人曾经成功地查询过 EagleSoft(或任何类似的专有软件包)——请告诉我你是怎么做到的!