本文介绍如何在 Visual FoxPro 中使用远程视图或 SQL 直通查询从 SQL Server 表查询日期或时间值。
原始产品版本: Visual FoxPro
原始 KB 数: 145817
简介
在 Visual FoxPro 中,可以将日期类型输入数据的格式设置为 {mm/dd/yy}。 或者,如果直接在日期字段中键入,则可以将日期类型输入数据的格式格式化为 mm/dd/y。 但是,如果在对 SQL 表执行远程查询时将数据格式化为 {mm/dd/yy} 或 mm/dd/y,则会出现 ODBC 错误。
详细信息
如果将远程查询中的日期值、时间值或 timestamp
值传递给 SQL 表,则必须使用以下转义子句设置数据的格式:
日期值: {d 'yyyy - mm - dd'}。 在此格式中, yyyy 表示年份、 mm 表示月份, dd 表示日期。
时间值: {t 'hh : mm : ss'}。 在此格式中, hh 表示小时、 mm 表示分钟数, ss 表示秒。
时间戳值: {ts 'yy - mm - ddhh : mm : ss'}。
在 SQL 传递查询中,可以使用以下语法检索日期字段的值:
=SQLEXEC( nConnHandle, "SELECT * FROM TITLES WHERE
Titles.pubdate<{ts '1995-06-12 12:55:00'}", 'MyCursor')
可以使用以下语法创建查询日期和时间信息的远程视图:
CREATE SQL VIEW sqldate REMOTE CONNECTION sqldate AS SELECT * FROM ;
dbo.titles WHERE Titles.pubdate<{ts '1985-06-12 12:55:00'}
在视图设计器中,确保日期值、时间值或时间戳值的格式设置为在“选择条件”选项卡的“示例”字段中所需的方式。保存视图时,“示例”字段中的信息与视图一起保存。 如果打开并修改视图,“示例”字段中的信息将丢失。 如果执行此操作,则必须再次键入信息。
注意
在远程查询中将字段名称作为参数传递而不是传递值时,不会遇到 ODBC 错误,因为 Visual FoxPro 执行转换。
参考
ODBC 2.0 程序员参考和 SDK 指南,pp.50-52,Microsoft出版社。