select id,avg(datediff(RQ1,RQ2)) as N2 from tableName group by id;上面查询语句在cmd界面执行正常
但当在VB中执行则异常
无法取到 RS.RecordCount 或 RS.Fields("N1") 的值
提示:
-----------------------------
实时错误'3704'
对象关闭时,不允许操作
-----------------------------另外
在查询语句中单独使用avg 或 datediff 函数时
正常
一但将两个函数一起使用
则会出现以上错误
但当在VB中执行则异常
无法取到 RS.RecordCount 或 RS.Fields("N1") 的值
提示:
-----------------------------
实时错误'3704'
对象关闭时,不允许操作
-----------------------------另外
在查询语句中单独使用avg 或 datediff 函数时
正常
一但将两个函数一起使用
则会出现以上错误
检查:"CN.STATE = 1"RS.Open strSQL, CN, adOpenDynamic, adLockReadOnly
n = RS.RecordCount <----这行出现提示,关键问题是SQL语句在cmd中执行正常
如果我把avg 或 datediff 两个函数只用其中一个
也运行正常
只要放到一起
就出错可能问题出在 myODBC 上
如何解决
select id,avg(s1) from (select id,datediff(RQ1,RQ2) as s1 from tablename) as xx group by id
create table tablename (id int,RQ1 datetime,RQ2 datetime)
-- select * from tablename-- 插入记录
insert into tablename
select 1,'2009-01-01 10:00:00','2009-01-02 11:00:00' union
select 2,'2009-01-02 10:00:00','2009-01-04 10:30:00' union
select 3,'2009-01-03 10:00:00','2009-01-06 11:30:00'
-- 执行查询
select id,avg(datediff(RQ1,RQ2)) as N2 from tableName group by id;
得到记录如下:
1,-1
2,-2
3,-3
VB代码段Private Sub Command1_Click()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
'创建ODBC数据源连接
cn.ConnectionString = "DSN=cpc;UID=root;pwd=123;Initial Catalog=cpcpd"
cn.Open
'获取记录集
rs.Open "select id,avg(datediff(RQ1,RQ2)) as N2 from tableName group by id", cn, adOpenDynamic, adLockReadOnly
'打印记录
While Not rs.EOF
Debug.Print rs.Fields(0).Value & "===" & rs.Fields(1).Value
rs.MoveNext
WendEnd Sub
(行者) 等 级: ★
结帖率:99.44% 一分我也不要,相信楼主会看到的,如果对他有益,给你分好了
这个贴子分给滴不高
发的急没注意到操作临时表时报错:
create temporary table tmpTable as select id,avg(datediff(RQ1,RQ2)) as N2 from tableName group by id;
但先在库里建一个表后
下面操作通过了
insert into tmpTable(a,b)
select id,avg(datediff(RQ1,RQ2)) as N2 from tableName group by id;所以只好暂时用建了一个表来中转一下
但总认为这不是个好办法
如果说是MYSQL问题吧
所有语句在cmd里操作都正常
只要一放到VB里就不行了
所以想可能是那个MyODBC3.51的问题谁能给个答案?