你为什么不建视图呢?让你的XML来保存视图好了。

解决方案 »

  1.   

    我不太清楚,自己数据库的视图如何和别的数据库对应起来?而且数据库类型都有可能是不一样的,我这边是oracle的,对方是不确定的。to:lynx(lynx):
    用xml如何来保存一个视图信息??举个例子好吗?
      

  2.   

    如果对方的数据库也是oracle的话,我觉得我上面的办法是可行的如果不是的,那你只能编程实现了
      

  3.   

    恩,我想也是只能编程实现,但首先必须要能灵活保存客户方数据库和自己数据库之间的映射信息。我现在想了一种方案(我们自己数据表是一个,结构是固定的,对方可变),信息格式保存如下:
    <column-mappings>
    <own-column>自己数据表字段名1</own-column>
    <outer-table>对方表名1</outer-table>
    <outer-column>对方字段名1</outer-column>
    </column-mappings><column-mappings>
    <own-column>自己数据表字段名2</own-column>
    <outer-table>对方表名2</outer-table>
    <outer-column>对方字段名2</outer-column>
    </column-mappings><!--客户方表关系保存-->
    <relationships>
    <!--下面说明客户表1和表2通过A和B发生关系-->
    <relationship>
    <fisttable>对方表名1</firsttable>
    <secondtable>对方表名2</secondtable>
    <first-field>表一中的字段A</first-field>
    <second-field>表二中的字段B</first-field>
    </relationship>
    <relationships>这样的话,当对自己数据表发出一个查询请求的时候
    如:select id,age from A where age>20
    我首先可以通过<column-mappings>里的信息转换成:
    select a.id ,b.age form a,b where b.age>20
    然后我再查找a和b的关系,如果有a中的a1字段和b中的b1字段发生关系,那么我再把查询语句处理成:select id,age from A where age>20 and a.a1=b.b1大家帮我看一下,我这样想的是否周到?对于我的功能有什么遗漏的地方??
    谢谢!!
      

  4.   

    1。如果你无法确定对方是什么数据库,当然这简直是不可能的,如果是ORACLE,那就简单了,就像上面的仁兄说的那样  创建数据库链,创建视图,然后就像操作自己的表一样。
    2。但是如果对方的数据库不是Oracle,那就用ODBC,或者其它方式连接。然后将对方的数据提取到你自己的数据库中,当然  视图或者临时表存放哪些数据都可以,然后就象操作自己的表一样了。