Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - SQL 用法 » 远程数据访问 » 用于远程数据访问的服务器类 » 服务器类 ODBC

 

Microsoft Excel (Microsoft 3.51.171300)

对于 Excel,可以将每一个 Excel 工作簿在逻辑上视为包含若干个表的数据库。数据库中的表可以映射到 Excel 工作簿中的工作表。当您在 ODBC 驱动程序管理器中配置 ODBC 数据源名时,可以指定与该数据源相关联的缺省工作簿名称。不过,当您执行 CREATE TABLE 语句时,可以替换该缺省值并在位置字符串中指定工作簿名称。这样,就可以只使用一个 ODBC DSN 访问所有 Excel 工作簿。

创建一个名为 excel、连接至 Microsoft Excel ODBC 驱动程序的远程服务器。

CREATE SERVER excel
CLASS 'ODBC'
USING 'DRIVER=Microsoft Excel Driver (*.xls);DBQ=d:\\work1.xls;READONLY=0;DriverID=790'

要创建名为 work1.xls 的工作簿,其中包含称为 mywork 的工作表(或表),请执行以下语句:

CREATE TABLE mywork (a int, b char(20))
AT 'excel;d:\\work1.xls;;mywork';

要再创建一个工作表(或表),请执行下面的语句:

CREATE TABLE mywork2 (x float, y int)
AT 'excel;d:\\work1.xls;;mywork2';

可使用 CREATE EXISTING 语句将现有工作表导入 SQL Anywhere,前提是表的第一行包含列名称。

CREATE EXISTING TABLE mywork
AT'excel;d:\\work1;;mywork';

如果 SQL Anywhere 报告未找到该表,则可能需要明确说明您想要映射到的列和行范围。例如:

CREATE EXISTING TABLE mywork
AT 'excel;d:\\work1;;mywork$';

如果在工作表名中添加 $,则表示应选择整个工作表。

请注意,在 AT 指定的位置字符串中,使用分号而不是句点作为字段分隔符。这是因为句点出现在文件名中。Excel 不支持所有者名字段,因此请不要填写该字段。

Excel 也不支持删除操作。此外,由于 Excel 驱动程序不支持定位更新,因此可能无法进行某些更新。

 示例