首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

送分100分:怎么提高CONN.EXECUTE SQL的可靠性

2012-01-07 
送分100分:如何提高CONN.EXECUTE SQL的可靠性。在下面的这段代码,用来先清除数据表DUBIAO中的数据,而后刷新

送分100分:如何提高CONN.EXECUTE SQL的可靠性。
在下面的这段代码,用来先清除数据表DUBIAO中的数据,而后刷新DATAGRID1中的数据(注:DATAGRID1的DATASOURCE属性是空白的,也就是说跟DUBIAO是没有关系的。)。代码运行环境是VB6+ACCESS2003。

现在遇到的问题是:
1、如果去掉第二步中的延时,DUBIAO表中的数据在代码刚刚执行时却显示在DATAGRID1中。
2、如果不加第二步中的延时,即使是执行Conn.Execute sql2时带参数n,DUBIAO表中的数据在代码刚刚执行时也显示在DATAGRID1中。

  Set DataGrid1.DataSource = Nothing
  DataGrid1.Refresh

  第一步,清除表中的数据
  Dim n As Long
  sql2 = "delete from dubiao where 1=1 "
  Conn.Execute sql2, n
  
  第二步,延时1秒
  Sleep (1000)
   
  第三步,重新加载表中的数据,按说已经清除了,DATAGRID1中不应显示数据。
  Sql3 = "select * from dubiao order by 表号,户号 "
  Set lsRs3 = GetRst(Sql3, msg) ' 提取一个RECORDSET给 lsRs3
  DataGrid1.ClearFields
  Set DataGrid1.DataSource = lsRs3
  DataGrid1.ReBind
  DataGrid1.Refresh

注:CONN的定义
  sysConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\**.mdb; User ID=**;Password=**;Persist Security Info=True;Jet OLEDB:System database=" & App.Path & "\**.mdw;Jet OLEDB:Database Password = **"  
  Conn.CursorLocation = adUseClient
  Conn.Open (sysConnString)


请问大家,如何才能保证CONN.EXECUTE的可靠性。


[解决办法]
CONN.EXECUTE的可靠性与你的sleep延时有关,这种设计模式好象没有别的好办法,
如果改用adodc+datagrid数据绑定,不就不存在这个问题了
[解决办法]
将这句话改成
DataGrid1.clear
DataGrid1.Refresh
试试
[解决办法]
第一步直接
Conn.Execute "delete from dubiao "
第三步
Set DataGrid1.DataSource = lsRs3 
DataGrid1.ReBind 
DataGrid1.Refresh
==》
Set DataGrid1.DataSource = lsRs3 
lsRs3.requery
好像前面有个类似的贴子

热点排行