下面是我的一部分程序,如果是链接本地的数据库,就不会司机,如果链接远程的数据库,就会出现死机,这个是为什么?
                    Set rss = rsSql.RunSelectSQL("select * from tblpartcost where version = '" & Trim(flex1.TextMatrix(flex1.Row, 0)) & "' and zversion <> ''")
                    If Not rss.EOF Then rss.MoveFirst
                    Do While Not rss.EOF
                        Set rsss = Mconnection.Execute("delete from tblgongxucost where version = '" & Trim(rss!zversion) & "'")
                        
                        Set rsss = Mconnection.Execute("delete from tblothercost where version = '" & Trim(rss!zversion) & "'")
                        
                        Set rsss = Mconnection.Execute("delete from tblpartcost where version = '" & Trim(rss!zversion) & "'")
                        
                        Set rsss = Mconnection.Execute("delete from tblpackagingcost where version = '" & Trim(rss!zversion) & "'")
                        
                        Set rsss = Mconnection.Execute("delete from tblpricestructure where version = '" & Trim(rss!zversion) & "'")
                        
                        Set rsss = Mconnection.Execute("delete from tblcompetitor where version = '" & Trim(rss!zversion) & "'")
                        
                        Set rsss = Mconnection.Execute("delete from tblmojucost where version = '" & Trim(rss!zversion) & "'")
                        
                        Set rsss = Mconnection.Execute("delete from tbljiajucost where version = '" & Trim(rss!zversion) & "'")
                        
                        Set rsss = Mconnection.Execute("delete from tblDirectSalary where version = '" & Trim(rss!zversion) & "'")
                        rss.MoveNext
                    Loop

解决方案 »

  1.   

    Private Function ExecList() As String
        '上述代码不妨改成这种格式
        Dim strSql As String
        Dim sTemp As String
        
        On Error GoTo errExecList
        
        sTemp = "select zVersion from tblPartCost where version ='" & flex1.textmatrix(flex1.ros, 0) & "' and zVersion <> ''"
        
        mconnection.BeginTrans
        strSql = "delete from tblGongXuCost where version in (" & sTemp & ")"
        mconnection.Execute strSql
        strSql = "delete from tblothercost where version in (" & sTemp & ")"
        mconnection.Execute strSql
        strSql = "delete from tblpartcost where version in (" & sTemp & ")"
        mconnection.Execute strSql
        strSql = "delete from tblpackagingcost where version in (" & sTemp & ")"
        mconnection.Execute strSql
        strSql = "delete from tblpricestructure where version in (" & sTemp & ")"
        mconnection.Execute strSql
        strSql = "delete from tblcompetitor where version in (" & sTemp & ")"
        mconnection.Execute strSql
        strSql = "delete from tblmojucost where version in (" & sTemp & ")"
        mconnection.Execute strSql
        strSql = "delete from tbljiajucost where version in (" & sTemp & ")"
        mconnection.Execute strSql
        strSql = "delete from tblDirectSalary where version in (" & sTemp & ")"
        mconnection.Execute strSql
        mconnection.CommitTrans
        ExecList = "更新成功!"
    errExecList:
        mconnection.RollbackTrans
        ExecList = err.Description
    End Function
      

  2.   

    关键是循环的时候要死机,rss的结果可能不是一条记录
      

  3.   

    Dim zversions As StringSet rss = Mconnection.Execute("select zversion from tblpartcost where version = '" & Trim(flex1.TextMatrix(flex1.Row, 0)) & "' and zversion <> ''")Do While Not rss.EOF
        zversions = IIf(zversions > "", ", '", "'") & rss!zversion & "'"
        rss.MoveNext
    LoopMconnection.Execute "delete from tblgongxucost where version IN (" & zversions & ")"
                            
    Mconnection.Execute "delete from tblothercost where version IN (" & zversions & ")"
                            
    Mconnection.Execute "delete from tblpartcost where version IN (" & zversions & ")"
                            
    Mconnection.Execute "delete from tblpackagingcost where version IN (" & zversions & ")"
                            
    Mconnection.Execute "delete from tblpricestructure where version =  IN (" & zversions & ")"
                            
    Mconnection.Execute "delete from tblcompetitor where version IN (" & zversions & ")"
                            
    Mconnection.Execute "delete from tblmojucost where version IN (" & zversions & ")"
                            
    Mconnection.Execute "delete from tbljiajucost where version IN (" & zversions & ")"
                            
    Mconnection.Execute "delete from tblDirectSalary where version IN (" & zversions & ")"
      

  4.   

    这段是什么意思啊?
    Do While Not rss.EOF 
        zversions = IIf(zversions >  "", ", '", "'") & rss!zversion & "'" 
        rss.MoveNext 
    Loop