Dim TempRS As New AdoDb.Recordset
Dim AdoConn as New AdoDb.Connection
Set TempRS.ActiveConnection = AdoConn
Dim Sql as String
Sql = "SELECT * FROM users WHERE user_id = '123456'"
TempRS.Open Sql, AdoConn, adOpenDynamic, adLockOptimistic, adAsyncFetch------------------
执行上述操作后,TempRS.BOF and TempRS.EOF 总是TRUE,但‘123456’确实存在。
TempRS.RecordCount = "<数据提供程序或其它服务返回 E_FAIL 状态。>"
TempRS.Status = "<BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。>"请教各位:是什么原因引起的啊?如何解决?
Dim AdoConn as New AdoDb.Connection
Set TempRS.ActiveConnection = AdoConn
Dim Sql as String
Sql = "SELECT * FROM users WHERE user_id = '123456'"
TempRS.Open Sql, AdoConn, adOpenDynamic, adLockOptimistic, adAsyncFetch------------------
执行上述操作后,TempRS.BOF and TempRS.EOF 总是TRUE,但‘123456’确实存在。
TempRS.RecordCount = "<数据提供程序或其它服务返回 E_FAIL 状态。>"
TempRS.Status = "<BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。>"请教各位:是什么原因引起的啊?如何解决?
Dim AdoConn As New ADODB.Connection
Dim Sql As StringSql = "SELECT * FROM users WHERE user_id = '123456'"TempRS.CursorLocation = adUseClient
TempRS.Open Sql, AdoConn, adOpenDynamic, adLockPessimisticIf TempRS.EOF Then MsgBox "没有数据", vbExclamation
在你的数据库连接前加入
adocnn.cursorlocation=aduseclient '假设adocnn为连接数据库对象
Dim AdoConn as New AdoDb.Connection
2,用这种方法定义不是很好的,可改成
dim adoconn as adodb.connection
dim temprs as adodb.recordset 要用时就用SET 语句
加一句这个就行:TempRS.CursorLocation = adUseClient游标为客户端游标
Sql = "SELECT * FROM users ORDER BY user_id"
同样有问题。VB怎么就这么破?!
1:users是否是关键字啊?[users]代替看看
2:是否TempRS没有声明?加dim TempRs as adodb.recordset
set TempRs as new adodb.recordset
1、连接是正常的。
2、user_id 是String类型的,是Primary Key。
3、关键请注意TempRS的返回值!
4、怪问题:Sql = "SELECT user_id FROM users WHERE user_id = '123456'"
TempRS可以正常取值。但是当选择的Column个数太多,若
Sql = "SELECT user_id,Name,Sex,...(n个Column)... FROM users WHERE user_id = '123456'"
(n>40),问题就出现了。
5、后台数据库是MySQL4.0.15,通过ODBC连接。
6、怀疑是TimeOut问题,但仍未解决。
7、分值不够可再加。