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

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 远程数据和批量操作 » 用于远程数据访问的服务器类 » 基于 ODBC 的服务器类 » 服务器类 odbc

 

Microsoft Excel (Microsoft 3.51.171300)

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

在本示例中,创建了一个名为 excel 的 ODBC 数据源。要创建名为 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 驱动程序不支持定位更新,因此可能无法进行某些更新。