0

ucanaccess を使用して、約 20 個の mdb ファイルから dataimport に対して次の設定を行いた。

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource name="a" driver="net.ucanaccess.jdbc.UcanaccessDriver" type="JdbcDataSource" url="jdbc:ucanaccess://E:/feqh/main.mdb;memory=false" />

<dataSource name="a1" driver="net.ucanaccess.jdbc.UcanaccessDriver" type="JdbcDataSource" url="jdbc:ucanaccess://E:/feqh/A/1.mdb;memory=false" />
<dataSource name="a2" driver="net.ucanaccess.jdbc.UcanaccessDriver" type="JdbcDataSource" url="jdbc:ucanaccess://E:/feqh/A/2.mdb;memory=false" />
<dataSource name="a3" driver="net.ucanaccess.jdbc.UcanaccessDriver" type="JdbcDataSource" url="jdbc:ucanaccess://E:/feqh/A/3.mdb;memory=false" />
<dataSource name="a4" driver="net.ucanaccess.jdbc.UcanaccessDriver" type="JdbcDataSource" url="jdbc:ucanaccess://E:/feqh/A/4.mdb;memory=false" />
<!-- and so on -->

<document>
    <entity name="Book" dataSource="a"
            query="select bkid AS id, bkid AS BookID,bk AS BookTitle, betaka AS BookInfo, cat as cat from 0bok">
                   <field column="id" name="id"/>
                   <field column="BookID" name="BookID"/>
                   <field column="BookTitle" name="BookTitle"/>
                   <field column="cat" name="cat"/>    
        <entity name="Category" dataSource="a"
                query="select name as CatName, catord as CatWeight, Lvl as CatLevel from 0cat where id = ${Book.CAT}">
                    <field column="CatName" name="CatName"/>
                    <field column="CatWeight" name="CatWeight"/>
                    <field column="CatLevel" name="CatLevel"/>
        </entity>

        <entity name="Pages" dataSource="a5" onError="continue"
                query="SELECT nass AS PageContent, page AS pageNum FROM b${Book.ID} ORDER BY page">
                <field column="PageContent" name="PageContent" />
                <field column="PageNum" name="PageNum" />
                <entity name="Titles" dataSource="a5" onError="continue"
                    query="SELECT * FROM t${Book.ID} WHERE id = ${Pages.PAGE} ORDER BY sub">
                        <field column="ID" name="TitleID"/>
                        <field column="TIT" name="PageTitle"/>
                        <field column="SUB" name="TitleWeight"/>
                        <field column="LVL" name="TitleLevel"/>
                </entity>
        </entity>


    </entity>
  </document>
</dataConfig>

別の dataSource からインポートするたびに、Pages エンティティと Titles エンティティの両方の dataSource 属性を手動で変更し、クリーンなしで dataimport を実行する必要がありました。現在、600 を超える mdb ファイルがあるため、これは賢明な選択肢ではありません。構成内でループを作成する方法はありますか? 言い換えれば、すべての本のタイトルとカテゴリを処理するメイン エンティティまたは mdb ファイルがあり、すべての本には ID で名前が付けられた独自の mdb ファイルがあります。たとえば、ID 245 の本の場合は 245.mdb です。ページとタイトルを動的に。

4

1 に答える 1