如何在SQL数据源远程视图中设置筛选条件,提取出以字符型表示的日期字段大于某一年的数据?

ZJM4862915 2010-03-01 02:09:40
在VFP8.0中,以SQL数据库表“商品购进记录”为数据源建立了远程视图,现在需要在远程视图中设置筛选条件,提取出以字符型表示的销售日期字段大于某一年(例如2009年)的数据?或销售日期字段介于某二年之间(例如2008年至2009年)的数据?(以字符型表示的销售日期字段的形式为:“09/02/12”)敬向电脑专家请教,应如何在远程视图中设置命令?不胜感激!

我已经知道销售日期大于某一日的命令形式为:销售日期字段 > {fn now()}-10(前10天的数据),但不知道销售日期字段大于某一年的命令,请专家指导。
...全文
407 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
十豆三 2010-03-03
  • 打赏
  • 举报
回复
1、视图你用不好,建议还是用 SPT吧。
2、代码方式创建视图:我一般在表单的 Load 事件写如下相应代码
Create Database MyData
Create Connection MyConn Connstring 连接字符串
Create Sql View 视图名 Remote Connection MyConn;
AS Select *;
From dbo.SQL表名 SQL表名;
Where 条件

然后下面设置一下视图
ZJM4811192 2010-03-03
  • 打赏
  • 举报
回复
十豆三专家:
谢谢您的指导!
我使用您提供的命令在远程视图设计器中的“筛选”项下界面中,输入“ Datepart(Year,字符型日期字段)>2009 ”,已经可以打开远程视图进行数据阅读 。但出现一个问题,在再次进行远程视图修改打开视图设计器时却出现了出错提示:“ SQL:找不到列YEAR ” ,按“确定”按钮后原来设置的筛选条件全部丢失。应如何解决这一问题?敬请您指导,不胜感激!
十豆三 2010-03-02
  • 打赏
  • 举报
回复
另外我习惯代码创建视图,在我以前回复你的帖子中有例子。
十豆三 2010-03-02
  • 打赏
  • 举报
回复
在“筛选”项中的 字段名 的下拉框中有一个 <表达式...>
ZJM4862915 2010-03-02
  • 打赏
  • 举报
回复
十豆三专家:
谢谢您的指导!
在VFP8.0的视图设计器中的“筛选”项下界面中,左边列是供选择的筛选字段,右边列是表达式,即左边列只能是字段名,右边才可以使用函数表达式,而您指导的命令在左边就要使用函数表达式,可在VFP8.0的视图设计器中的“筛选”项下界面中却无法写入函数名,只可以选择筛选字段,在这种情况下应如何设置?敬请指导,不胜感激!

例如:筛选销售日期前10天的数据我使用的命令形式是:销售日期字段 > {fn now()}-10,但不知道销售日期字段大于某一年的命令,请指导。
十豆三 2010-03-02
  • 打赏
  • 举报
回复
忘了用  SQL 函数,

Datepart(Year,字符型或日期型日期字段)>2009
ZJM4862915 2010-03-02
  • 打赏
  • 举报
回复
十豆三专家:
谢谢您的指导!
我在远程视图中设置了筛选条件为: Year(Ctod(字符型日期字段))>2009 ,但运行时却出了以下的出错提示:

连接错误:[Mcrosoft][ODBC SQL Server Driver][SQL Server ]'CTOD'不是可以识别的函数名”

因为我的VFP8.0远程视图数据源是SQL数据库表,是不是在SQL里没有CTOD函数,这里不能使用VFP函数,而应该使用SQL函数,应该如何设置,敬请您指导。
十豆三 2010-03-01
  • 打赏
  • 举报
回复
远程视图中可以条件,如条件为:字段名=?变量名

这个变量设为全局变量,当然你可以将整个条件设为一个变量,如:远程视图条件为:?全局变量1

打开视图前:
Public 全局变量1
全局变量1=" .T. "
然后打开视图,当你想改为条件时只需改为 全局变量1的值,如:全局变量1=" Year(Ctod(字符型日期字段))>2009 "
十豆三 2010-03-01
  • 打赏
  • 举报
回复
日期取出年用Year(),如: Year(Date())
相关推荐
发帖
VFP

2574

社区成员

VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
帖子事件
创建了帖子
2010-03-01 02:09
社区公告
暂无公告