2012-05-29 68 views
2

我想使用XML批量加载(SQL Server 2008)。我几乎在那里,但我认为我的模式文件是错误的。我得到的错误是这样的:XML批量加载问题到SQL Server

VBS Error Msg

以下是我有:

SQL表结构:

SQL Table Structure

架构文件:

<?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 

回答

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文件中。

+0

我想使用标签名称“gross”后面的值。我会认为你的XML发布会导致重量的重复标签问题。 –

+0

@ElJay - 啊,我明白了。请谷歌了XML元素和XML属性之间的区别。现在回答固定。 –

+0

问题是我不能切实地更改XML文件。我必须与我拥有的东西一起工作(那里也有大约5000个条目)。我能做些什么来改变我的Schema文件以使用这个XML文件? –