- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
是否有关于与 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 中,TRUE
和 FALSE
条件都会被评估,仅在 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/
我正在尝试使用 SAP ABAP OLE OBJECT 打开受密码保护的 excel 文件,如下所示: DATA: lt_excel_line(4096) OCCURS 10 WITH HEADER
我目前正在实现一个 IOleObject 接口(interface),以将我们软件的可视化数据嵌入到其他软件(如 PowerPoint)中。我们的软件创建测量数据的图形评估(图表等)。 目标是,最终用
我对此很陌生。我正在尝试将 355 行传输到目的地 我有 3 列要转移 Customer_Number、Crime_Type、Action_Date。 当我创建源表时都是nvarchar(50) 目标
我有一个包含 2 个组件的数据流任务: 属于 SELECT 查询的 OLEDB 数据源任务: SELECT ACCOUNTID FROM JOBS WHERE STATUS=3 OLE DB 命令任务
我有一个包含 2 个组件的数据流任务: 属于 SELECT 查询的 OLEDB 数据源任务: SELECT ACCOUNTID FROM JOBS WHERE STATUS=3 OLE DB 命令任务
我有一个自定义数据库,我想为其编写一个 OLE DB 提供程序,但我希望用 C# 来完成。 我找到了这两个站点,但所有示例都在 C 中。 http://msdn.microsoft.com/en-us
我正在运行以下代码 /*Fetchinch Last CustID from custMaster*/ int ID = 0; try { con.Open(); da = new
我使用 oledb 提供程序(SQLOLEDB 和 SQL Native OLEDB 提供程序)创建了一个示例应用程序。 案例 1:提供者 = SQLOLEDB hr = ::CoInitialize
我花了几个小时试图解决这个问题。对于给我带来问题的列,我在 sql server 中使用标量函数来获取名称。该功能是正确的并且工作正常。然后我使用一个存储过程与 ssis 一起使用。给我错误的列指出它
我的源是 TXT 平面文件源,目标是 OLE DB 类型。 (见图) 我发现了一个非常basic tutorial on Code Project创建一个包。我完成了这些步骤,但是在调试时出现了一个奇
我正在对SQL Server数据库使用OLE DB批量复制操作,但是在将数据加载到bit列时遇到了麻烦-它们总是填充有true! 我根据下面的代码段从simple reproduction progr
我目前生活在 90 年代,我收到了这段遗留代码。我对 COM/OLE/MFC/ATL 不了解,所以我问这个问题,希望当时有经验的人可以帮助我找出这个问题。 我拥有的是这个非常古老/遗留的 MFC/AT
我使用 WTL 创建了一个 Dialog,继承自 CDialogImpl 类,在主对话框中我创建了另一个对话框,并在第二个子对话框中创建了一个列表控件。我想向列表控件添加拖放功能,我在网上阅读了有关
我使用 WinAPI 函数在 C# 中创建 OLE 文件。 WinAPI 函数是: [DllImport("ole32.dll")] public static extern int O
我正在尝试调整图像大小以在我的 OLED 设备上显示。 我想要显示的图像是: 目前,我的 OLED 显示屏仅显示图像的一小部分: 基于How to resize image? ,我在脚本中添加了 ne
如何在 128x64 OLED 显示屏上滚动长文本 我正在使用 Adafruit_SSD1306 驱动程序 此代码仅显示“This”,因为文本太大而无法显示,但是当我滚动文本时,仅“This”滚动而不
我无法解决这些术语之间的差异。 是COM和ActiveX同义词吗? ActiveX对象仅仅是公开IDispatch的COM对象吗? 许多较旧的MSDN页面提到IDispatch时没有任何COM上下文。
我们在 Delphi 7 中使用一些 OLE 自动化来打开一个 word 文档,然后在加载后保存它,并将其加载到数据库中。 这工作正常,但部分要求是在 OLE 位发生时有一个进度条,如果 OLE 部分
在我当前使用的产品中,Excel 电子表格是使用 Delphi 的 OLE 生成的。电子表格包含许多日期,应用程序从系统设置加载短日期格式并将其应用到单元格。除非系统格式至少设置为俄语、巴什基尔语、鞑
这个 c++ question 的语法是什么?在德尔福? 使用 oleContainer 后,并尝试执行 SaveDocumentAs 但不起作用。我认为这可能是一个不错的选择。 更新:感谢您的翻译,
我是一名优秀的程序员,十分优秀!