datagrid错误,我已经头大了

lo000ol 2003-12-01 11:55:22
我以下的程序:

1个form,1个cmd(删除),1个datagrid
--
public cnn as new adodb.connection
public rs as new adodb.recordset
--
private sub form_load()
cnn.Open "driver={sybase system};srvr=192.168.9.1,uid=sa,pwd=sa;database=aa"
rs.Open "select * from table_name", cnn, 3, 3
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
end
--
Private Sub Command3_Click()

DataGrid1.AllowDelete = True
rs.Delete '这里报错
rs.Update

End Sub

错误信息:
Err.Number:-2147467259
Err.Source :Microsoft Cursor Engine
Err.Description :数据提供程序或其他服务返回E_FAIL状态。

另:谁能提供有关datagrid的修改,增加,删除的代码,小弟不胜感激!
...全文
40 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
md2d 2003-12-05
  • 打赏
  • 举报
回复
用ODBC连试试
lo000ol 2003-12-04
  • 打赏
  • 举报
回复
请大家继续关注一下,我上面的代码在SQL2K上能用,但在SYBASE就报错了,谁知道是什么原因吗?
lo000ol 2003-12-02
  • 打赏
  • 举报
回复
to online(龙卷风(白学了,重新充电中))
我连SQL也没有问题,但连SYBASE就不行了。
郁闷呀~
melonboy 2003-12-02
  • 打赏
  • 举报
回复
Dim Bmk As Variant
For Each Bmk In datagrid1.SelBookmarks
rs.Bookmark = Bmk
rs.Delete
Next
rs.update
可以删除多条记录
王伟晔 2003-12-02
  • 打赏
  • 举报
回复
1)DataGrid1.AllowDelete = True
rs.CursorLocation = adUseClient
假如没有猜错,都是多余的
2)rs.Open "select * from table_name", cnn, 3, 3
问题应该出在这里,您应该查一下3,3的意义,因为我通常使用的是2,1
3)rs.Delete不是这样写的
应该是在DataGrid的与delete相关的事件中写入rs.update
4)另外一种方法,取得要删除的记录号
使用rs.execute "delete id='' from...."
online 2003-12-02
  • 打赏
  • 举报
回复
以下代码经过测试,没有问题
Option Explicit
Private conn As ADODB.Connection
Private rs As ADODB.Recordset

Private Sub Command1_Click()
DataGrid1.AllowDelete = True
rs.Delete '这里报错
rs.Update
End Sub

Private Sub Form_Load()
Dim apppath As String
Dim DbFileName As String
Dim ConnectString As String
Dim i As Integer
Set conn = New ADODB.Connection
If Right(App.Path, 1) = "\" Then
apppath = App.Path
Else
apppath = App.Path & "\"
End If
DbFileName = apppath & "article.mdb"
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
DbFileName & ";Persist Security Info=False;"

On Error Resume Next
With conn
.CursorLocation = adUseClient

.Open ConnectString
End With


Set rs = New ADODB.Recordset
rs.Open "select id,mc from mz", conn, 1, 3
If rs.EOF Then
Exit Sub
End If
Set DataGrid1.DataSource = rs

End Sub
melonboy 2003-12-02
  • 打赏
  • 举报
回复
在rs.open前加一行
rs.CursorLocation=adUseClient
lo000ol 2003-12-02
  • 打赏
  • 举报
回复
在rs.open前我也定义了类型
rs.CursorLocation = adUseClient

online 2003-12-02
  • 打赏
  • 举报
回复
连sybase的
http://expert.csdn.net/Expert/topic/2503/2503451.xml?temp=.9640772
http://expert.csdn.net/Expert/topic/2480/2480559.xml?temp=.9214289

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧