“BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录”我从数据库中获取的是当前某字段的最大值,SQL语句是“SELECT MAX(A) FROM T”
得到的结果保存在一个RECORDSET中,但是想用GETROWS方法取的时候,总是出现这样的错误,我声明为静态指针的RECORDSET再MOVEFIRST回去还是会出现,不知道应该怎么办了,求助
得到的结果保存在一个RECORDSET中,但是想用GETROWS方法取的时候,总是出现这样的错误,我声明为静态指针的RECORDSET再MOVEFIRST回去还是会出现,不知道应该怎么办了,求助
解决方案 »
- win7出现ActiveX component can't create object
- 请问Winxp环境下怎么实现DCOM分布式程序
- 请问怎样编写一个屏蔽IE插件的工具???
- C++做的COM组件,传给VB一个字符数组,VC里用的是BSTR,在VB里得到的数组是LONG类型的,怎么转换?
- datagrid问题
- vb实现了在WORD中添加按钮,但是只能在第一次打开的WORD中起作用,再打开WORD时按钮就不作用了,帮帮忙,如何解决呀?
- 我近来有个考勤系统要开发,不知有没人有原代码,愿出钱购买
- 用vb怎么测试与internet网络连接状态
- hycappril222222222222222222222
- 请教一个vb和 excel的问题!!!
- 怎么把 二维数组 分解 成 一维数组?
- 用sql语句新建的表,可以用text里的值来命名吗?
rs.open sql,conn,1,1然后看看rs.fields(0)这样读取
MsgBox "无记录"
Else
MsgBox "有记录"
End If结果每次都是“有记录”,再向下执行的时候,就出现“BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录”错误,气死人了
Set rs = conn.Execute(sql)
Public Function GetRsWithConnSqlstring(ByVal connString As String, ByVal strSql As String) As Recordset
Dim conn As New ADODB.Connection
Dim rst As New ADODB.Recordset conn.ConnectionString = connString
conn.Open
rst.Open strSql, conn, 1, 1, adCmdText
rst.MoveFirst Set GetRsWithConnSqlstring = rst If Len(Dir(App.Path & "\tmp.adtg")) > 1 Then
Kill App.Path & "\tmp.adtg"
End If
GetRsWithConnSqlstring.Save App.Path & "\tmp.adtg"
conn.Close
Exit FunctionPrivate Sub cmdAdd_Click()
Dim rstAddRecord As New ADODB.Recordset
Dim rstGetMaxId As New ADODB.Recordset
Dim strSql As String
Dim strConn As String
Dim strStartTime As String
Dim strEndTime As String
Dim nProject As Project
Dim strServer As String
Dim strUser As String
Dim strPWD As String
Dim strDataSource As String
'从INI文件获取数据库连接信息
strServer = GetIniStr("ORACLE", "Server", App.Path & "\database.ini")
strDataSource = GetIniStr("ORACLE", "Data Source", App.Path & "\database.ini")
strUser = GetIniStr("ORACLE", "User", App.Path & "\database.ini")
strPWD = GetIniStr("ORACLE", "pwd", App.Path & "\database.ini")
'打开数据库,获取当前最大ID
strConn = "Provider=OraOLEDB.Oracle.1;Password=" & strPWD & ";Persist Security Info=True;User ID=" & strUser & ";Data Source=" & strDataSource
strSql = "Select NVL(max(id),0) from PROJECTINFO " GetRsWithConnSqlstring strConn, strSql
rstGetMaxId.Open App.Path & "\tmp.adtg", , adOpenStatic, adLockReadOnly, adCmdText
rstGetMaxId.MoveFirst
If rstGetMaxId.EOF Or rstGetMaxId.BOF Then
MsgBox "无记录"
Else
MsgBox "有记录"
End If
Dim x As Integer
x = rstGetMaxId.Fields(0) + 1
End Sub
想使用断开的recordset但是总是在
rst.open '参数略,实际是有配置好的参数的
rst.ActiveConnection = Nothing
这一步出错,提示是“run-time error '3705'对象打开时,不允许操作”
只好绕了一个大弯,用SAVE方法...
我是第一次用VB6做项目,不符合习惯的地方,还请各位提醒
刚把INSERT的SQL语句拼好,还没执行,数据库里居然会出现这条记录
我之前使用CONN后CLOSE掉了啊,
然后看看结果
set rstGetMaxId =GetRsWithConnSqlstring (strConn, strSql)==========================
下面对rstGetMaxId 做任何操作都会提示,对象关闭时,不允许操作。。