问题描述:首先在Oracle中建立一个针对会话的临时表.SQL如下:
     CREATE GLOBAL TEMPORARY TABLE STUDENT
     (
      ID    NUMBER(10) NOT NULL,          
      NAME  VARCHAR2(50)
      )
     ON COMMIT PRESERVE ROWS;
在VB中对该表进行Insert Into数据(成功)另外有一个word文件(.doc文件)运用其Mail Merge功能绑定到该临时表上(Mail Merge里面有一个绑定数据源的地方Data Source)。。从其中取数据可以加载显示到Word文件上。。*因为对于临时表,如果不是一个Connection Session连接的话,该表对于每一个Session都是独立的,相互之间的数据不会干扰,一般用于多用户处理的情况。。所以这时问题出现了,在同一台客户端,由于VB和Word的MailMerge访问临时表的Session不一样,所以导致我在VB里给临时表Insert的记录,在Word里看不见*而我的程序要完成这样的功能:首先在VB里插入到表一条记录,然后在VB里打开一个绑定到该临时表的Word文件(打开word文件我用的是shell方法)*是不是应该在VB里面写word的mailmerge的连接数据库程序???这样VB和Word是不是成了同一个Session???要不是这样在VB里面该怎么写这段代码呢?如果不是这种思路,那如何解决这个问题??谢谢大家了!!

解决方案 »

  1.   

    我认为这行不通。问题在于word在mailmerge时一定会打开一个到datasource的connection.除非你能让你的vb程序和word共享一个connection(很怀疑这个的可行性).应该可以这样解决:
    创建一个临时文件作为mailmerge的datasource. 文件格式可以使纯文本,csv, 或者带表格的Word文档(建议不要使用Word文档,如果你的数据纪录很长,会影响速度)。在你用vb插入表纪录的同时,向该临时文件写入同样的纪录。当然,如果你的oracle临时表只起这里提到的作用的话,完全就不必要用到了。