gpt4 book ai didi

sql - 有关 EXCEL 中的 SQL 和 Microsoft OLE DB Provider for Jet 4.0 的任何引用/手册吗?

转载 作者:行者123 更新时间:2023-12-01 20:20:50 25 4
gpt4 key购买 nike

是否有关于与 Microsoft OLE DB Provider for Jet 4.0 连接的 EXCEL 中的 SQL 语法的引用/手册?

例如,如何编写日期类型的常量?

有哪些关键字/函数/子句可用?

最佳答案

当使用 Excel 作为 Jet 4.0 数据源时,我所知道的最佳引用是:

How To Use ADO with Excel Data from Visual Basic or VBA

特别重要的是,当现有列包含 mixed data types 时,如何确定其整体数据类型.

关于 Microsoft OLE DB Provider for Jet 4.0,最相关的文章是:

ADO Provider Properties and Settings: Microsoft Jet 4.0 Provider Properties

也就是说,之前的文章更好地介绍了 Excel 特定的详细信息。

使用 Excel 和 SQL 时应注意的一个重要问题:

BUG: Memory leak occurs when you query an open Excel worksheet by using ActiveX Data Objects (ADO)

What keywords/functions/clauses are available?

关于使用 Jet 4.0 SQL,这篇文章是我发现的最好的文章:

Intermediate Microsoft Jet 4.0 SQL

理论上,SQL section of the Access Help应该是相关的,但它是 particularly low quality Jet 4.0 的覆盖率尤其差。

同样,并非所有内容都可以直接在 Excel 中运行。例如,虽然您可以使用 CREATE TABLE SQL DDL 创建新的工作表和工作簿,但您无法创建 NOT NULL 列,因为这在物理上是不可能的。此外,Excel 的数据类型粒度较小,例如大多数数字类型映射到DOUBLE FLOAT

对于可在 SQL 中使用的表达式,Jet 4.0 表达式服务以某种方式使用了 VBA 表达式服务。从广义上讲,Jet 可以使用任何 VBA 5.0(不是最新版本,是 VBA 6.0)函数,该函数不是涉及值并返回单个值的方法,仅具有简单内在数据类型(无数组、无对象等) )。我认为 Microsoft 从未明确发布过 Jet 4.0 支持的 VBA 函数的明确列表,这一点是正确的。不过,我相信以下文章中的列表恰好与 Jet 4.0 中可用的 VBA 函数列表完全一致:

How to configure Jet 4.0 to prevent unsafe functions from running in Access 2003

(该列表位于副标题“在 Jet 4.0 Service Pack 3 及更高版本中使用沙盒模式操作”下的表格中。)

请注意,某些函数在 Jet 4.0 中的行为与在 VBA 中不同。我的脑海里浮现出两个。 IIF() 可以在 Jet 4.0 中快捷方式(未记录,据我所知):在 VBA 中,TRUEFALSE 条件都会被评估,仅在 Jet 4.0 中评估匹配条件。 CDEC()(转换为DECIMAL)函数为 broken in Jet 4.0

how do I write constants of type date? I mean, the way to express 2011.01.20 (this constant value) in SQL, for example, do I use '2011-01-20', or #2011-01-20#, or something else?

我知道这是一个“字面值”。

这与 VBA 相同,即 #m/d/yyyy#,因此今天的日期将为 #1/20/2011#。但是,我更喜欢使用 ISO 8601日期格式和单引号(为了可移植性)并始终包含时间字段(因为 Jet 4.0 只有一种时间数据类型,即 DATETIME),并且为了确保尊重区域设置,请使用 CDATE() 转换为 DATETIME 函数,例如今天的日期将为 CDATE('2011-01-20 00:00:00')

<小时/>

[最初认为OP的意思是“如何创建DATE类型的列?”]

您可以使用CREATE TABLE DDL,例如

CREATE TABLE [Excel 8.0;DATABASE=C:\MyNewWorkbook.xls].MyTable 
(
my_date_col DATETIME
);

请注意,虽然 Jet 4.0 将遵循 DATETIME 数据类型,但在 Excel 中编辑工作簿时则没有这样的限制:如果表 Range 已扩展并且添加非临时数据后,Jet 4.0“看到”的数据类型可能会因此发生变化。

<小时/>

关于sql - 有关 EXCEL 中的 SQL 和 Microsoft OLE DB Provider for Jet 4.0 的任何引用/手册吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4733155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com