vb 游标未声明问题
Private Sub ini_mshFlex1() '数据列表显示:对应车辆显示最后一秒的信息Dim tblName As String '表名
On Error GoTo errHand
If Not cntMark Then
Call MsgError
Exit Sub
Else
For i = 0 To intNumCar - 1
tblName = "GPSData" & Format(Now, "yyyymm")
strSql = "SELECT top 1 * FROM " & tblName & " where "
strSql = strSql & "1=1"
strSql = strSql & " and CarNO='" & strListCarNO(i) & "'"
' strSql = strSql & " and flag=1"
strSql = strSql & " order by BoxTime desc"
Set rst = Cn.OpenResultset(strSql, rdOpenStatic) '就是这里老出现游标未声明的错误
If Not rst.EOF Then
While Not rst.EOF
MDIfrmMain.msFlex1.Rows = MDIfrmMain.msFlex1.Rows + 1
lngListI = lngListI + 1
MDIfrmMain.msFlex1.Row = lngListI
MDIfrmMain.msFlex1.Col = 0
MDIfrmMain.msFlex1.Text = lngListI
MDIfrmMain.msFlex1.Col = 1
MDIfrmMain.msFlex1.Text = rst!CarNO
MDIfrmMain.msFlex1.Col = 2
MDIfrmMain.msFlex1.Text = rst!Longitude
MDIfrmMain.msFlex1.Col = 3
MDIfrmMain.msFlex1.Text = rst!latitude
MDIfrmMain.msFlex1.Col = 4
MDIfrmMain.msFlex1.Text = rst!BoxSpeed
MDIfrmMain.msFlex1.Col = 5
MDIfrmMain.msFlex1.Text = rst!BoxDirec
MDIfrmMain.msFlex1.Col = 6
MDIfrmMain.msFlex1.Text = rst!BoxTime
MDIfrmMain.msFlex1.Col = 7
MDIfrmMain.msFlex1.Text = IIf(rst!GPSState = 1, "定位", "不定位") 'Gps状态
MDIfrmMain.msFlex1.Col = 8
MDIfrmMain.msFlex1.Text = IIf(rst!RelayState = 1, "断油断电", "-") '继电器状态
MDIfrmMain.msFlex1.Col = 9
MDIfrmMain.msFlex1.Text = IIf(rst!AlarmSt1 = 1, "开", "-") '车门状态
MDIfrmMain.msFlex1.Col = 10
MDIfrmMain.msFlex1.Text = IIf(rst!AlarmSt2 = 1, "报警", "-") '开关量2状态
MDIfrmMain.msFlex1.Col = 11
MDIfrmMain.msFlex1.Text = IIf(rst!AlarmSt3 = 1, "报警", "-") '电源状态
MDIfrmMain.msFlex1.Col = 12
MDIfrmMain.msFlex1.Text = IIf(rst!AlarmSt4 = 1, "报警", "-") '电源低压报警
MDIfrmMain.msFlex1.Col = 13
MDIfrmMain.msFlex1.Text = IIf(rst!AlarmSt5 = 1, "超速", "-") '超速报警
rst.MoveNext
Wend
End If
Next
rst.Close
End If
Exit Sub
errHand:
Call MsgError
End Sub
我以前学的是java,现在工作不景气,好不容易找了份工。前面的前辈留下了份东西,是vb写的。我现在要给它运行起来,可是里面有很多的地方出现游标未声明的错误,不知道为什么!!郁闷了老久了,现在求求大仙们帮忙解决!
Set rst = Cn.OpenResultset(strSql, rdOpenStatic) 基本每个用到这句的功能模块都出现游标未声明的问题
Public Cn As rdoConnection
Public rst As rdoResultset 'rst和cn的定义 --------------------编程问答-------------------- 大哥大姐们求求你们帮忙解答! --------------------编程问答-------------------- rdoConnection
rdoResultset 不熟悉这种类型
--------------------编程问答-------------------- 帖子加到100分,诚求答案 --------------------编程问答-------------------- 改用 rdOpenKeyset 或 rdOpenDynamic 试试,不同的数据库支持的游标不一样。 --------------------编程问答-------------------- 我用的是SqlServer2000 --------------------编程问答-------------------- 你装MSDN了么,里面有一篇文章叫:Choosing an RDO Cursor Type,可以参考一下。 --------------------编程问答-------------------- 英文的 !看不太懂 --------------------编程问答-------------------- 我的MSDN是英文版的,中文版的MSDN里对应的文章是中文的,你搜“RDO 游标类型”应该就能搜到。 --------------------编程问答-------------------- 有没有可能是系统兼容性的问题,我服务端上在我自己的笔记本上运行,用的是xp sp3的系统,客户端实在公司电脑上用的是xp sp2的系统。有没有可能是系统问题! --------------------编程问答-------------------- Set rst = Cn.OpenResultset(strSql, rdOpenStatic) '就是这里老出现游标未声明的错误
为什么要这样写,改用下面的,试试
dim cn as New ADODB.Connection
dim rs as New ADODB.Recordset
cn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库;Data Source=."
strSql="......"
rs.Open strSql, cn, adOpenKeyset, adLockOptimistic
--------------------编程问答-------------------- 10楼:看清楚,是 RDO。 --------------------编程问答-------------------- 没用过rdo,如果可能不如改用ado好了...
相应的资料网络上很多,用ado的人也多,应该可以帮上你的人也多。
--------------------编程问答--------------------
补充:VB , 数据库(包含打印,安装,报表)