不是高手莫进来!:)

cfans2002 2002-06-03 11:08:42
在一个DBF文件(ck.dbf)中存在date字段(日期型)
但打开存在错误:
Dim cnnDbf As New ADODB.Connection
Dim rstdbf As New ADODB.Recordset
Dim strcnn As String

strcnn = "DSN=Visual FoxPro Database;UID=;PWD=;SourceDB=C:\;SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;" 'strCon & DBFpath & strCon1 '"DSN=Visual FoxPro Database;UID=;PWD=;SourceDB=" & DBFpath & ";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"
cnnDbf.Open strcnn
strsql = "select * from ck where [date]>#2002-01-01#"
rstdbf.Open strsql, cnnDbf, adOpenKeyset, adLockReadOnly

总在最后一句(rstdbf.open)提示错误: odbc驱动程序不支持所需的属性
但是在VisData中运行很好,我想是不是后面的条件有问题,去掉后正常,难道ado不能设置时间(不可能吧),请高手指点!!!

...全文
56 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cfans2002 2002-06-08
  • 打赏
  • 举报
回复
convert是一个什么函数呀,怎样用呀!
wzsswz 2002-06-04
  • 打赏
  • 举报
回复
strsql = "select * from ck where convert(char(10),date,120) > '2002-01-01'"
wzh8 2002-06-03
  • 打赏
  • 举报
回复
不要使用#,使用单引号就可以了。
strsql = "select * from ck where [date] >'2002-01-01'"
我在SQLSERVER就实现了。

cfans2002 2002-06-03
  • 打赏
  • 举报
回复
谢谢!我试过了,你的方法同样行不通,要不然我怎么用[]将date字段括起来呢。是别人的数据库,没有办法。
另外dbf中的内容显示就是长日期型
zhujiechang 2002-06-03
  • 打赏
  • 举报
回复
strsql = "select * from ck where date>#2002-01-01#"
试一下,另外DBF很可能不支持这样的日期结构,不要使用DATE系统这种默认的关键字作为数据库字段。

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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