2

XML Bulk Load (SQL Server 2008) を使用しようとしています。私はほとんどそこにいますが、私のスキーマファイルが間違っていると思います. 私が得ているエラーはこれです:

VBS エラー メッセージ

ここに私が持っているものがあります:

SQL テーブル構造:

SQL テーブル構造

スキーマ ファイル:

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data" 
    xmlns:dt="urn:schemas-microsoft-com:xml:datatypes"  
    xmlns:sql="urn:schemas-microsoft-com:xml-sql" > 

    <ElementType name="weight" dt:type="string" />
    <ElementType name="fwd" dt:type="float" />
    <ElementType name="aft" dt:type="float" />

    <ElementType name="CGs" sql:is-constant="1">
        <element type="gross" />
    </ElementType>

    <ElementType name="gross"  sql:relation="tblCGLimits">
      <element type="weight"  sql:field="weight" />
      <element type="fwd" sql:field="fwd" />
      <element type="aft"        sql:field="aft" />
   </ElementType>
</Schema>

XML ファイル:

<?xml version="1.0" encoding="utf-8" ?>
<CGs>
    <gross weight="8000">
        <fwd>196.5</fwd>
        <aft>208.88162</aft>
    </gross>
    <gross weight="8001">
        <fwd>196.495</fwd>
        <aft>208.8825148</aft>
    </gross>
    <gross weight="8002">
        <fwd>196.49</fwd>
        <aft>208.8834096</aft>
    </gross>
</CGs>

そして、私が使用しているVBScript:

Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad")
objBL.ConnectionString = "provider=SQLOLEDB.1;data source=MyServer;database=MyDB;uid=MyUser;pwd=MyPW"
objBL.ErrorLogFile = "c:\XMLError.log"
objBL.Execute "c:\Schema.xml", "c:\CGLimits.xml"
Set objBL = Nothing
4

1 に答える 1

2

XSD ファイルでは、重みの値が属性ではなく要素であることを指定しています。これは次のようになります。

<?xml version="1.0" encoding="utf-8" ?>
<CGs>
    <gross>
        <weight>8000</weight>
        <fwd>196.5</fwd>
        <aft>208.88162</aft>
    </gross>
    <gross>
        <weight>8001</weight>
        <fwd>196.495</fwd>
        <aft>208.8825148</aft>
    </gross>
    <gross>
        <weight>8002</weight>
        <fwd>196.49</fwd>
        <aft>208.8834096</aft>
    </gross>
</CGs>

これを修正するには、変更します

<element type="weight" sql:field="weight"/>

<attribute type="weight" sql:field="weight"/>

XSD ファイルで。

于 2012-05-29T16:31:30.980 に答える