ado其他属性的设置是什么?
是不是设错了

解决方案 »

  1.   

    对象变量或 With 块变量没有设置
      

  2.   

    ado.LockType = adLockOptimistic
      

  3.   

    :wjying(葡萄)
    这个没有问题,还有什么??:zymfy(梦小凡)
    对就是这个错误,怎么解决,谢谢:platinumkill(bb)
    我查过的,不明白怎么做,请指教!!
      

  4.   

    :zymfy(梦小凡)
    adoMainData.Recordset.AddNew
    它出的问题
      

  5.   

    ado.cursorlocation
    ado.cursortype
    是什么?
      

  6.   

    :wjying(葡萄)
    ado.cursorlocation=3
    ado.cursortype=1
      

  7.   

    你试一下只是修改数据然后update行不行
      

  8.   

    回复人: LowBird(我是大菜鸟) (2002-1-12 22:22:38)  得0分 
    :wjying(葡萄)
    ado.cursorlocation=3
    ado.cursortype=1
     
    麻烦告诉我对应的常量名是什么
      

  9.   

    :wjying(葡萄)
    CursorType = adOpenKeyset
    cursorlocation=aduseclient
      

  10.   

    对了 你在adoMainData.Recordset.AddNew前面加一句
    adoMainData.Recordset.Update
      

  11.   

    :wjying(葡萄)
      不行
      

  12.   

    :wjying(葡萄)
    那也谢谢了
      

  13.   

    :ferrytang(水油)
    我只加了个控件,什么都没有做??
    连上数据库就不好使??为什么???
      

  14.   

    :heng_s(渣渣)
    有,我是用控件的,连接没有问题
      

  15.   

    set up the vb program again !
      

  16.   

    对象变量或 With 块变量没有设置(错误 91)
       创建对象变量有两个步骤。第一,必须先声明对象变量。然后必须用 Set 语句将一个正确的引用赋值给对象变量。同样地,With...End With 块必须先用 With 语句进入点来执行初始化。此错误有以下的原因和解决方法: 试图使用的对象变量,还没有用一个正确对象的引用来赋值。 
    给对象变量指定或再指定一个引用。例如,如果在下列的代码中省略 Set 语句的话,那么引用 MyObject 将会产生错误:Dim MyObject As Object    ' 创建对象变量。
    Set MyObject = Sheets(1)    ' 创建一个正确的对象引用。
    MyCount = MyObject.Count    ' 计数值赋给 MyCount。试图用的对象变量已经被设为 Nothing。 
    Set MyObject = Nothing    ' 释放此对象。
    MyCount = MyObject.Count    ' 引用了已释放的对象。再指定引用给对象变量。例如,使用新的 Set 语句给对象设置新的引用。此对象是正确的对象,但没有被设置,因为在对象库中,在 “引用” 对话框中没有被选取。 
    在 “添加引用” 对话框选择对象库。在 With 块内GoTo 语句的去向。 
    不要跳进 With 块。确保块使用 With 语句进入点以执行初始化。当选了 “设置下一条语句” 命令时,在 With 块内指定了一行。 
    With 块必须用 With 语句执行初始化。详细信息,可选取有问题的项目,并按下 F1 键。 
      

  17.   

      adoMainData.Recordset.AddNew
        adoMainData.Recordset.Fields("dw").Value = dcoDlmDw.Text
        adoMainData.Recordset.Update可能你的 adomaindata没打开
      

  18.   

    为什么一定要用控件呢?我直接用语句来打开ADO添加、更新都没问题,方便得多。只是多写几行代码而已嘛。
      

  19.   

    to LowBird:
    你的代码太少了,分析不了
    to all:
    其实这些我看应该是ado 属性的关键的地方
    欢迎大家讨论一下,欢迎高手指点我们这些菜鸟。
    下面是我的以前提过的问题,还没有一个明确的答案。
    主  题:恳求帮助:ado锁问题(locktype),locktype 为 adlockpessimistic,但却可以添加,修改,另外,Recordcount 在何种条件下不能用? MSDN 上说 cursortype -->adopenforwardoly不能用
    作  者:luckyhqh
    所属论坛:数据库开发
    问题点数:25
    回复次数:14
    发表时间:2001-11-12 16:11:44
     
      
      '首先打开记录集( command1_click() )
      ' locktype 为 adlockpessimistic
    '再次显示在Msflexgrid 中( command2_click() )
    '接着测试  ( command4_click() )
      '里面有修改,有添加,测试都可以
    '本来锁类型为adlockpessimistic 意味着不许修改,添加,这是为什么?????
    '在一台机子上我运行了command1_click() 
    '在另外的机子上我进行测试
    '而在同一台机子上结果也是如此。  Why …… :(~~~~~~~~~~~~~~~~
    '另外,Recordcount 在何种条件下不能用? MSDN 上说 cursortype -->adopenforwardoly不能用
    '但在cursorlocation 为aduseServer 时 都用不了,而在aduseclient 时都可用。是MSDN 有问题?还是…………
    'locktype,cursortype ,cursorlocation到底如何搭配使用????
    '渴求高手帮助!!!!!!
    Dim adocn As New adodb.Connection
    Dim adocm As New adodb.Command
    Dim adoRs As New adodb.Recordset
    Private Sub Command1_Click()
    Dim errLoop As adodb.Error
      adocn.Errors.Clear
      Dim sql As String
      sql = "select * from TB001"
      If adoRs.State = 1 Then
        adoRs.Close
      End If
      adoRs.CursorType = adOpenDynamic
      adoRs.CursorLocation = adUseServer
      adoRs.LockType = adLockPessimistic
      adoRs.Open sql, adocn, , , adCmdText
      Debug.Print adoRs.RecordCount 
      On Error GoTo Err_Execute
    Err_Execute:
      ' 将任何由执行查询引起的错误通知用户。
      If adocn.Errors.Count > 0 Then
          For Each errLoop In adocn.Errors
            MsgBox "Error number: " & errLoop.Number & vbCr & _
                errLoop.Description
          Next errLoop
      End If
      
      Resume Next
    End Sub
    Private Sub Command2_Click()
      Dim StrItem As String
      Dim i, j As Integer
      
      Grid.Cols = adoRs.Fields.Count + 1
      Grid.Rows = 1
      Grid.Rows = 3
      Grid.Redraw = False
      Grid.Row = 0
      Grid.Col = 0
      Grid.Text = "序号"
      For j = 0 To adoRs.Fields.Count - 1
        Grid.Col = j + 1
        Grid.Text = adoRs.Fields(j).Name
        Debug.Print adoRs.Fields(j).Type
      Next j
        adoRs.MoveFirst
        While Not adoRs.EOF
    '  For i = 1 To adoRs.RecordCount
    '
          StrItem = Str(i)
        For j = 0 To adoRs.Fields.Count - 1
          StrItem = StrItem & vbTab & adoRs.Fields(j)
        Next j
        Grid.AddItem StrItem, Grid.Rows - 2
        adoRs.MoveNext
    '    Next i
      Wend
      Grid.Redraw = True
      Grid.Refresh
      
      
      
    End SubPrivate Sub Command3_Click()
      Dim sql As String
      Dim errLoop As adodb.Error
      adocn.Errors.Clear  sql = "update TB001 set T00101='jack'"
      adocn.Execute (sql)
    Err_Execute:  ' 将任何由执行查询引起的错误通知用户。
      If adocn.Errors.Count > 0 Then
          For Each errLoop In adocn.Errors
            MsgBox "Error number: " & errLoop.Number & vbCr & _
                errLoop.Description
          Next errLoop
      End If
      
      Resume NextEnd SubPrivate Sub Command4_Click()
    Dim sql As String
    Dim errLoop As adodb.Error
    Dim rs As New adodb.Recordset
    On Error GoTo Err_Execute
        adocn.Errors.Clear
        If rs.State Then
            rs.Close
        End If
        rs.LockType = adLockPessimistic
        rs.CursorLocation = adUseServer
        rs.CursorType = adOpenKeyset
        rs.Open "select * from TB001", adocn, , , adCmdText
        rs.MoveFirst
        
    ' 修改
        Do While Not rs.EOF
            If rs.Fields(0) = "hqh" Then
                rs.Fields(1) = "999"
            End If
            rs.MoveNext
        Loop
    '添加
        rs.AddNew
        rs.Fields(0) = "kmx"
        rs.Fields(1) = 77
        rs.Fields(2) = 201
        rs.Update
        
    Err_Execute:  ' 将任何由执行查询引起的错误通知用户。
      If adocn.Errors.Count > 0 Then
          For Each errLoop In adocn.Errors
            MsgBox "Error number: " & errLoop.Number & vbCr & _
                errLoop.Description
          Next errLoop
      End If
      
    '  Resume NextEnd SubPrivate Sub Form_Load()  adocn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=rberp;Data Source=rberp"
      adocn.Open
      If adocn.State = 0 Then
        MsgBox "Connect database error!", vbCritical, "Hello!"
        Exit Sub
    '  Else
    '    MsgBox "connect database success!", vbInformation, ""
      End If'  Call AddTvItem
    End Sub 
    回复贴子: 
    回复人: Wesely(无奈太多) (2001-11-12 16:35:15)  得0分 
    关注!  
    回复人: luckyhqh(luckyhqh) (2001-11-12 17:39:41)  得0分 
    help.......
     
    回复人: luckyhqh(luckyhqh) (2001-11-13 15:06:48)  得0分 
    ~~~~~~~~~~~~~~~~恳求帮助~~~~~~~~~~~~~~~~~~  
    回复人: luckyhqh(luckyhqh) (2001-11-27 9:26:29)  得0分 
    %$(*)(__)(*&^^%^*(*)  
    回复人: uje(sky) (2001-11-27 9:47:53)  得0分 
    你用的是什么数据库,锁定功能是有数据库厂商提供的。而LOCKTYPE是ADO中定义的,有的PROVIDER不支持所有的类型。  
    回复人: uje(sky) (2001-11-27 9:47:57)  得0分 
    你用的是什么数据库,锁定功能是有数据库厂商提供的。而LOCKTYPE是ADO中定义的,有的PROVIDER不支持所有的类型。  
    回复人: luckyhqh(luckyhqh) (2001-11-27 11:41:44)  得0分 
    我用的时MS sqlserver 7.0 2000,  msdn 何ms sqlserver online  book 看的比较多,但是都没有一个好的说法。 :(  
    回复人: diruser(求知) (2001-11-27 11:50:36)  得0分 
    求记录总数,请用select count(*) from 表名,然后读出记录值。
    若用记录集要先移到最后一笔,才可。  
    回复人: diruser(求知) (2001-11-27 11:54:01)  得0分 
    1。adlockpessimistic-- 保守式记录锁定(逐条)。
    2。adLockReadOnly--只读,无法更改数据。
    3。adLockOptimistic--开放式记录锁定。
    4。adLockBatchOptimistic--开放式批更新
    只用2.的为只读,无法更改数据.
     
    回复人: bisc_sunny(中子) (2001-11-27 12:48:36)  得0分 
    谁说的adlockpessimistic是只读游标阿!只有AdlockReadOnly才是只读的,
    其他全都是可读可写,只不过锁的机制不同,diruser已经说得很清楚了。关于RecordCount,请先使用Rs.MoveLast,这一点MSDN里也说过。
    然而服务器端游标确实使用起来有诸多限制,而且除了打开速度外,浏览时并不感觉快。  
    回复人: luckyhqh(luckyhqh) (2001-11-27 16:33:14)  得0分 
    adlockpessimistic -- 保守式记录锁定,当然,打开的地方可以用来读写,我指的是如别人同时也打开的话,那就会有锁定而别人只读。如果不是这样,如何控制只能让一个用户修改,而其修改释放后,别的人立即可以修改,这如何达到,能否有段代码。谢谢!  
    回复人: bluepower2008(蓝色力量) (2001-11-27 18:31:10)  得0分 
    看来兄弟你有必要去看看数据库的锁类型和模式。
    看看有关共享锁,更新锁,排他锁和意向锁。
    当一个用户在读取记录时,使用的是共享锁,这时其他用户也只能对同样的记录申请共享锁。如果用户要修改记录,就要申请排他锁,这时该资源上不能有其他任何锁。但为了防止死锁,可以先使用更新锁,在修改时再升级到排他锁,对于一个资源同一时间只能一个事务拥有更新锁。
    其他还有很多关于锁的知识,现在要走了,下次有时间再写吧。
    建议你自己看看书,琢磨琢磨,收获会更大。  
    回复人: luckyhqh(luckyhqh) (2001-11-28 9:49:06)  得0分 
    bluepower2008(蓝色力量) :
      能否给段源代码?在Sql server 2000的联机帮助上确实有这些东西,但我从头看到尾由于没有代码,我还是很朦胧.  
      

  20.   

    adoMainData是个什么?
    ado控件?
    那么用
    Dim c As ADODB.Connection
    Set c = New ADODB.Connection
    Set c = Adodc1.Recordset.ActiveConnection
    c.Execute "INSERT INTO [a] VALUES ('asd')"
    c.Close
    Set c = Nothing
      

  21.   

      我写一段给你参考一下   set rs as new adodb.recordset
       rs.open "table",conn,adOpenKeyset,adLockOptimistic 
       rs.addnew
        rs.update
      

  22.   

    问题在和ado控件有关的属性,怎么设置??谢谢