请教一个关于dbf链接中的日期的问题

yongmei123 2007-10-08 04:09:57
我原来用数据源链接cn = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=js"
现在直接链接dbf数据库cn = "provider=msdasql;DRIVER=Microsoft Visual FoxPro Driver;UID=;Deleted=yes;Null=no;Collate=Machine;BackgroundFetch=no;Exclusive=No;SourceType=DBF;SourceDB=" & App.Path & "\js.dbf;"
用数据源链接正常的sql,直接链接就出现问题了
sql = "select NAME,THIS_DATA,THIS_TIME from js where dece_one < > ' ' and this_time between # " & Format(Text1.Text, "yyyy-mm-dd") & "# and #" & Format(Text2.Text, "yyyy-mm-dd") & "# order by dece_one desc"
出现错误提示错误号:-2147217900 错误信息:[Microsoft][ODBC Visual FoxPro Driver]Syntax error

请教各位高手
...全文
103 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yongmei123 2007-10-09
  • 打赏
  • 举报
回复
and dtoc(this_time)>= '" & Format(Text1.Text, "yyyy-mm-dd") & "' order by dece_one desc
或and dtoc(this_time)>= '" & Text1.Text& "' order by dece_one desc
从网上查了这种写法,没语法错误但是查询不出来
yongmei123 2007-10-09
  • 打赏
  • 举报
回复
按照8楼这样写吗this_time between # " & Text1.Text & "# and #" & Text2.Text& "#

这样写也不行
提示


错误号:-2147217913 错误信息:[Microsoft][ODBC Visual FoxPro Driver]Operator/oprand type mismatch.
zdingyun 2007-10-09
  • 打赏
  • 举报
回复
既然this_time字段是日期型且用双#标注,Text1.Text及Text2.Text文本的格式无必要。
yongmei123 2007-10-09
  • 打赏
  • 举报
回复
按照6楼的应该怎么写呢
this_time between # " & Format(Text1.Text, "^yyyy-mm-dd") & "# and #" & Format(Text2.Text, "^yyyy-mm-dd") & "#
这样写还是出一样的毛病,去掉引号语法有错误
Tiger_Zhao 2007-10-09
  • 打赏
  • 举报
回复
FoxPro 的日期格式应该是 {^yyyy-mm-dd} 吧
yongmei123 2007-10-09
  • 打赏
  • 举报
回复
回复4楼,首先谢谢你的解答!this_time是日期格式,cn链接应该没问题,因为我把sql写成sql = "select NAME,THIS_DATA,THIS_TIME from js where dece_one < > ' ' order by dece_one desc" 能正常运行,断点执行的时候也可以
zdingyun 2007-10-09
  • 打赏
  • 举报
回复
13楼的代码能执行,学到一招,下列简化也能执行:
sql = "select NAME,THIS_DATA,this_time from js between {^" & Text1 & "} and {^" & Text2 & "}"
yongmei123 2007-10-09
  • 打赏
  • 举报
回复
tiger_zhao厉害,就是这个了,同时也谢谢zdingyun等其他帮助我的人,多谢
Tiger_Zhao 2007-10-09
  • 打赏
  • 举报
回复
this_time between {^" & Format(Text1.Text, "yyyy-mm-dd") & "} and {^" & Format(Text2.Text, "yyyy-mm-dd") & "}
yongmei123 2007-10-09
  • 打赏
  • 举报
回复
谢谢zdingyun,但是这个数据库不能更改了,这个是链接的硬件上的数据库,应该还有解决的方法吧。我原来链接的数据源,数据源也是链接的dbf数据库,就是同一个数据库。用数据源的缺点就是每装一次得设置一下数据源,太麻烦,就改成直接链接dbf数据库,但是就出现这个问题
zdingyun 2007-10-09
  • 打赏
  • 举报
回复
yongmei123 :
今建立一DBF数据表,试了你说的日期问题,确实存在.无论SQL查询句中日期的表达方式如何,都会报错.我认为可能是BUG.
建议你的日期字段定义为字符类型,可回避此问题.这数据表如果是ACCESS的,则上述查询句能执行.
继续关注此问题.
hwmys 2007-10-08
  • 打赏
  • 举报
回复
1、先看看DBF中this_time是日期格式吗?
2、看看ODBC中有支持VFP的用户数据源(用户DSN)没?
yongmei123 2007-10-08
  • 打赏
  • 举报
回复
cn链接没问题,就this_time between # " & Format(Text1.Text, "yyyy-mm-dd") & "# and #" & Format(Text2.Text, "yyyy-mm-dd") & "# 好像不认识
yongmei123 2007-10-08
  • 打赏
  • 举报
回复
?
Tiger_Zhao 2007-10-08
  • 打赏
  • 举报
回复
SourceDB 只要目录名就可以了,会自动用表名 js 定位文件 js.dbf

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧