Создание новой таблицы и загрузка данных

В разделе "Апдейтаграммы", в примере "Добавление данных" мы создали простую таблицу из одного поля и добавили в нее значение. Вот как это можно сделать с помощью XML Bulk Load.

Аннотированная схема:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ms="urn:schemas-microsoft-com:mapping-schema"> <xsd:element name="test-table" ms:relation="test1"> <xsd:complexType> <xsd:attribute name="identifier" ms:datatype="int" ms:field="_id"/> <xsd:attribute name="field1" ms:datatype="int" ms:field="fld1"/> </xsd:complexType> </xsd:element></xsd:schema>

Она ссылается на таблицу test1 и две колонки типа int – _id и fld1. В XML-документе соответствующие атрибуты будут называться identifier и field1.

Теперь скрипт:

Dim xbcp,adoStreamSet xbcp = CreateObject("SQLXMLBulkLoad.SQLXMLBulkLoad.3.0")Set adoStream = CreateObject ("ADODB.Stream") adoStream.OpenadoStream.WriteText "<root><test-table field1='145' identifier='1' /></root>"AdoStream.Position = 0 xbcp.ConnectionString = "Provider=sqloledb.1;Data Source=server;" & _ "database=pubs;User ID=user;Password=password;" xbcp.SchemaGen = truexbcp.SGDropTables = truexbcp.Transaction = truexbcp.ErrorLogFile = "c:\error.log"xbcp.TempFilePath = "c:\temp" xbcp.Execute "xbcp_schema.xml",adoStream

Чтобы не создавать отдельно малюсенький XML-документ, в примере используется объект Stream из ADO. В качестве схемы stream использовать нельзя, а жаль.

ПРИМЕЧАНИЕ Лично мне не удавалось запускать подобные скрипты на клиентской машине. Так как я не администратор домена, приходилось просить скопировать схему и скрипт на сервер и там уже запускать. Может, просто не хватало прав.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: