怪事!ado连接数据库的问题 尝试打开前设置 Re.CacheSize = 1000 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我试过了,还是不行,难道是ado不支持那么多数据 你用的Win2000吧,可能是它在作怪。 ladorst.CursorLocation = adUseClientladorst.Open strlong, Conn, 3, 3 是re.CursorLocation = adUseClientre.Open strlong, Conn, 3, 3 真正的问题并不在于ADO本身,肯定是你错怪它了。关键问题肯定是在于你打开数据库的方式不对。原因很简单:我用的数据库连接岂止两万条记录,头几天我们测试时加了三百八十多万条记录都成功取出来了--不过代价是时间长达 2 分钟,恐怕一般人受不了。给你一个最简单的例子参考(实际上不同的数据库可以用不同的连接方式和方法),如下:'' For Corp. ServerGlobal Const G_ADO_ConStr As String = _ "Provider=SQLOLEDB.1;User ID=User_XXX;Password=Psw_XXX;Persist Security Info=False;Initial Catalog=MIS_xxx;Data Source=SERVER_XXX"'' 功 能:' 查询部门信息'' 输入参数(可选)说明:' None''返回值:' 相应的记录集'Public Function GetDepByOptn( ) As ADODB.Recordset On Error GoTo ErrorProcess Dim strSql As String Dim strWhereOrAnd As String Dim Conn As ADODB.Connection Dim p_RS As ADODB.Recordset m_SuccessOrNot = False '' Open ADO connection Set Conn = New ADODB.Connection Set p_RS = New ADODB.Recordset '' Build SQL statement strSql = "SELECT * FROM T_Department " '' Open the Connection Conn.Open G_ADO_ConStr '' Open the recordset p_RS.Open strSql, Conn, adOpenStatic Set GetDepByOptn = p_RS Exit Function ErrorProcess: Err.Raise Err.Number & Err.Source Set GetDepByOptn = NothingEnd Function Public Function oracleconnect(sServer As String, sLoginID As String, sPassword As String) As ADODB.ConnectionOn Error GoTo erroracleconnectSet Re = New ADODB.Recordset '建立与数据库的连接Set Conn = New ADODB.ConnectionRe.CursorLocation = adUseClientConn.Open "Provider=OraOLEDB.Oracle.1;Password='" & sPassword & "'; " & _ "Persist Security Info=True;User ID= " & _ " '" & sLoginID & " '" & _ ";Data Source=""" & sServer & """"Exit Functionerroracleconnect:MsgBox Error, vbInformationEnd FunctionDim DataRe As New ADODB.RecordsetIf appendstr = "" Then MsgBox "请选择要显示的属性", vbExclamation + vbOKOnly, "错误"Else tempsql = Mid(appendstr, 1, Len(appendstr) - 1) Set login = oracleconnect(strserver, struid, strpwd) strlong = "select " & tempsql & " " & "from " & Lsttable.Text Re.CursorLocation = adUseClient Re.Open strlong, Conn, 3, 3end if这是我的代码,和你的有区别吗?我觉得好像没有. 这种问题不应该是ado的问题,有时候运行程序也会有的可能是bug吧,我想 我用adodc和datagrid点这几个表示也会死,而换用oradc(一个oracle控件)和msflexgrid就没事,为什么呢? 不知道你用的是不是access,如果是的话,记录有一定数量上限!我曾经在我的一个系统里用就是,不知道是ado的事,还是access的事 实时错误424 vb6.0中用ado data+dbgrid+foxpro 请个位帮个忙,先谢谢了啊! 抢分问题 如何得知一个函数的精确的运行时间 请问如何实现将image控件中的图象灰显 ★[技术文章]◇用VB写高效的图像处理程序 1.0β 用ADO连接数据库: 什么是并行回溯算法......急在线等待 如何利用sleep()函数实现程序短暂停顿? 哪儿有WAV转MP3的控件? 谁买过CSDN的Visual Studio β2,感觉怎么样?
ladorst.Open strlong, Conn, 3, 3
re.Open strlong, Conn, 3, 3
原因很简单:我用的数据库连接岂止两万条记录,头几天我们测试时加了三百八十多万条记录都成功取出来了--不过代价是时间长达 2 分钟,恐怕一般人受不了。
给你一个最简单的例子参考(实际上不同的数据库可以用不同的连接方式和方法),如下:'' For Corp. Server
Global Const G_ADO_ConStr As String = _
"Provider=SQLOLEDB.1;User ID=User_XXX;Password=Psw_XXX;Persist Security Info=False;Initial Catalog=MIS_xxx;Data Source=SERVER_XXX"'
' 功 能:
' 查询部门信息
'
' 输入参数(可选)说明:
' None
'
'返回值:
' 相应的记录集
'
Public Function GetDepByOptn( ) As ADODB.Recordset
On Error GoTo ErrorProcess
Dim strSql As String
Dim strWhereOrAnd As String
Dim Conn As ADODB.Connection
Dim p_RS As ADODB.Recordset
m_SuccessOrNot = False
'' Open ADO connection
Set Conn = New ADODB.Connection
Set p_RS = New ADODB.Recordset
'' Build SQL statement
strSql = "SELECT * FROM T_Department "
'' Open the Connection
Conn.Open G_ADO_ConStr
'' Open the recordset
p_RS.Open strSql, Conn, adOpenStatic
Set GetDepByOptn = p_RS
Exit Function
ErrorProcess:
Err.Raise Err.Number & Err.Source
Set GetDepByOptn = Nothing
End Function
On Error GoTo erroracleconnect
Set Re = New ADODB.Recordset '建立与数据库的连接
Set Conn = New ADODB.Connection
Re.CursorLocation = adUseClient
Conn.Open "Provider=OraOLEDB.Oracle.1;Password='" & sPassword & "'; " & _
"Persist Security Info=True;User ID= " & _
" '" & sLoginID & " '" & _
";Data Source=""" & sServer & """"
Exit Function
erroracleconnect:
MsgBox Error, vbInformation
End FunctionDim DataRe As New ADODB.RecordsetIf appendstr = "" Then
MsgBox "请选择要显示的属性", vbExclamation + vbOKOnly, "错误"
Else
tempsql = Mid(appendstr, 1, Len(appendstr) - 1)
Set login = oracleconnect(strserver, struid, strpwd)
strlong = "select " & tempsql & " " & "from " & Lsttable.Text Re.CursorLocation = adUseClient
Re.Open strlong, Conn, 3, 3
end if
这是我的代码,和你的有区别吗?我觉得好像没有.
可能是bug吧,我想