向大家请教这么个问题:
   1. 我在开发一个三层应用时,碰到这样一个关于事务的问题:
    假设数据对象db_tbs和db_tbj分别来对表tbs和tbj进行操作,我现在建一个组件makeplan完成把
    tbs中的记录转移到tbj中,当然这在一个事务中完成。应该先调用db_tbs的del方法进行删除然后调用db_tbj的add方法进行增加。请给出具体的vb编码。谢谢
   2.com+的队列组件问题
   请问com+实现队列组件时,其客户端怎样实现,这个时候不是已经和网络断开了吗,客户端没有登陆,怎么样和recorder建立连接啊??

解决方案 »

  1.   

    1。
    http://www.xc-soft.com/docs/3tieranddatabase.htm
    2。
    http://blog.csdn.net/online/archive/2004/07/07/36007.aspx
    http://blog.csdn.net/online/archive/2004/07/07/36010.aspx
      

  2.   

    http://www.xc-soft.com/docs/3tieranddatabase.htm
    中的例子我看过,它没有考虑使用事务。而且也没有通过一个组件调用另一个组件。我只想看一下这个顺序应该怎样来做。
    对于第二个问题,不知道我写明白没有。我现在有一个系统,b/s结构,中间层为com+,因为工作原因,经常要离线操作。比如来录入一个订单,所以我想可不可以用排队组件来实现。可能我学得不深入,有个问题就是我现在是离线状态,那我连系统都进不去,怎么来调用recorder呢??盼望各位高手给指点迷津。谢谢谢谢!!!!!!!!
      

  3.   

    这个例子中有相互调用类的情况,只是没有做成dll
    http://www.xc-soft.com/docs/3tieranddatabase.htm
    已这个为例子吧,里面有详细的事务
    http://www.ddvip.net/web/asp/index/83.htm该DLL含有两个类:一个类能给调用者提供检索可用产品列表的能力,另一个类提交订单。检索产品列表的类是非事务性的,而更新列表的类是事务性的,以确保同时改变两个表。
    我们可以把这两个类分开编译然后在一个dll中引用另外一个dll即可方法:set obj=createobject("工程名.类名")  //后期帮定
      

  4.   

    可以参考
    http://www.microsoft.com/china/MSDN/library/archives/library/techart/COMplus.asp
      

  5.   

    对于第二个问题,不知道我写明白没有。我现在有一个系统,b/s结构,中间层为com+,因为工作原因,经常要离线操作。比如来录入一个订单,所以我想可不可以用排队组件来实现。可能我学得不深入,有个问题就是我现在是离线状态,那我连系统都进不去,怎么来调用recorder呢??盼望各位高手给指点迷津。谢谢谢谢!!!!!!!!如果离线情况下,会将数据保存到消息队列中,当系统连接后,会自动将数据发送到远端
    我的例子中已经说明了上面是c/s的,至于b/s中,我现在是离线状态,那我连系统都进不去
    这个本地还要有b/s的程序,将数据发送到消息队列,等连结后,再发送到服务端至于离线record。,可以参考
    示例如下Dim cn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    Private Sub Command1_Click()
        rs.CursorLocation = adUseClient
        rs.Open "Select * from students", cn, adOpenStatic, adLockBatchOptimistic
        MsgBox rs.RecordCount
        '保存为XML
        rs.Save "c:\bbb.xml", adPersistXML
        rs.Close
        '读取XML文件
        rs.Open "c:\bbb.xml", cn, adOpenStatic, adLockReadOnly, adCmdFile
        MsgBox rs.RecordCount
        rs.Close
    End SubPrivate Sub Form_Load()
        If cn.State = 1 Then
            cn.Close
        End If
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\db1.mdb"
    End Sub
      

  6.   

    请问如何用一个组件调用另一个组件的方法
    我现在有两个组件makeplan.dll和组件tz.dll(数据对象)
    我现在要用makeplan.dll这个组件完成一定的功能,但应首先调用组件tz.dll的dele方法,删除tb_tz表中的数据。请给出vb代码
      

  7.   

    大致
    在makeplan.dll中
    public sub del()
    ...
    事务...
    dim obj
    set obj=createobject("p.tz")
    obj.dele()
    ....
    释放对象
    end sub
      

  8.   

    能不能给个详细一点的代码,谢谢谢谢!!!
    有这样一个情景:要制定一个计划,但现在有两个计划表:
    上月计划tb_last;本月计划表:tb_plan.为了封装数据访问,针对这两个表设计了两个数据对象db_last、db_plan来完成对表的操作,这两个数据对象均有add和del方法。利用组件makeplan.dll完成计划的制定。那么首先要把上月计划表中的数据全部删除,并把本月计划表中的数据转入上月表中,也就是把tb_last中的数据删除,并把tb_plan中的数据转入tb_last;最后把新的计划add到tb_plan中。因为要用到事务,我把db_last、db_plan设为支持事务,makeplan.dll为需要事务。