powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQLXMLBulkLoad в скрипте не работает цикл
10 сообщений из 10, страница 1 из 1
SQLXMLBulkLoad в скрипте не работает цикл
    #39929652
_kpoIIIka eHoT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Заранее прошу прощения за возможно глупый вопрос, но решения на просторах интернета не нашел.
Разобрался с механизмом импорта xml файлов на сервер sql с помощью SQLXMLBulkLoad. Создал таблицы, сделал схему, запускаю скрипт - все работает, но такой способ позволяет импортировать только один, конкретный файл.
А есть потребность импорта несколько сотен файлов из определенной папки, где находятся только xml файлы.
Пытаюсь написать цикл в скрипте, но при запуске выдает ошибку "Error opening the data file"

Dim objBL
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=PC\SQLEXPRESS;database=MyDatabase;uid=sa;pwd=psw"
objBL.ErrorLogFile = "d:\temp\error.log"
Set FSO = CreateObject("Scripting.FileSystemObject")
For each Fname in FSO.GetFolder ("d:\xml\").Files
objBL.Execute "d:\temp\testmapping.xsd", Fname
Set objBL = Nothing
Next
msgbox "готово"

Проверил, переменная Fname передается верно ((
Помогите пожалуйста.
...
Рейтинг: 0 / 0
SQLXMLBulkLoad в скрипте не работает цикл
    #39929654
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_kpoIIIka eHoT
Проверил, переменная Fname передается верно ((
И чему она равна? Надеюсь, полному имени файла, с путём?
...
Рейтинг: 0 / 0
SQLXMLBulkLoad в скрипте не работает цикл
    #39929655
_kpoIIIka eHoT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg
_kpoIIIka eHoT
Проверил, переменная Fname передается верно ((
И чему она равна? Надеюсь, полному имени файла, с путём?

Да, конечно.
...
Рейтинг: 0 / 0
SQLXMLBulkLoad в скрипте не работает цикл
    #39929660
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_kpoIIIka eHoT
Доброго времени суток.
Заранее прошу прощения за возможно глупый вопрос, но решения на просторах интернета не нашел.
Разобрался с механизмом импорта xml файлов на сервер sql с помощью SQLXMLBulkLoad. Создал таблицы, сделал схему, запускаю скрипт - все работает, но такой способ позволяет импортировать только один, конкретный файл.
А есть потребность импорта несколько сотен файлов из определенной папки, где находятся только xml файлы.
Пытаюсь написать цикл в скрипте, но при запуске выдает ошибку "Error opening the data file"

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim objBL
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=PC\SQLEXPRESS;database=MyDatabase;uid=sa;pwd=psw"
objBL.ErrorLogFile = "d:\temp\error.log"
Set FSO = CreateObject("Scripting.FileSystemObject") 
For each Fname in FSO.GetFolder ("d:\xml\").Files 
objBL.Execute "d:\temp\testmapping.xsd", Fname
Set objBL = Nothing
Next
msgbox "готово"



Проверил, переменная Fname передается верно ((
Помогите пожалуйста.
ты уничтожаешь объект objBL после обработки первого файла
Вынеси эту команду "за цикл"
...
Рейтинг: 0 / 0
SQLXMLBulkLoad в скрипте не работает цикл
    #39929664
_kpoIIIka eHoT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court,вот так ?

Dim objBL
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=PC\SQLEXPRESS;database=MyDatabase;uid=sa;pwd=psw"
objBL.ErrorLogFile = "d:\temp\error.log"
Set FSO = CreateObject("Scripting.FileSystemObject")
For each Fname in FSO.GetFolder ("d:\xml\").Files
objBL.Execute "d:\temp\testmapping.xsd", Fname
Next
Set objBL = Nothing
msgbox "готово"

ошибка не изменилась((
...
Рейтинг: 0 / 0
SQLXMLBulkLoad в скрипте не работает цикл
    #39929670
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_kpoIIIka eHoT
но при запуске выдает ошибку "Error opening the data file"
А в какой строке ошибка?

Лучше приведите всю информацию.

И ещё, если ошибка в строке 8, то на каком файле?
_kpoIIIka eHoT
Пытаюсь написать цикл в скрипте, но при запуске выдает ошибку
Т.е. если убрать цикл, и подставить константу, то ошибки нет?
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim objBL
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=PC\SQLEXPRESS;database=MyDatabase;uid=sa;pwd=psw"
objBL.ErrorLogFile = "d:\temp\error.log"
Set FSO = CreateObject("Scripting.FileSystemObject")
'For each Fname in FSO.GetFolder ("d:\xml\").Files
objBL.Execute "d:\temp\testmapping.xsd", "какой нибудь из файлов"
Set objBL = Nothing
'Next
msgbox "готово"
...
Рейтинг: 0 / 0
SQLXMLBulkLoad в скрипте не работает цикл
    #39929672
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так попробуй (выделил)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim objBL
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=PC\SQLEXPRESS;database=MyDatabase;uid=sa;pwd=psw"
objBL.ErrorLogFile = "d:\temp\error.log"
Set FSO = CreateObject("Scripting.FileSystemObject") 
For each Fname in FSO.GetFolder ("d:\xml\").Files 
objBL.Execute "d:\temp\testmapping.xsd", Fname.Path
Next
Set objBL = Nothing
msgbox "готово"
...
Рейтинг: 0 / 0
SQLXMLBulkLoad в скрипте не работает цикл
    #39929674
_kpoIIIka eHoT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court
так попробуй (выделил)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim objBL
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=PC\SQLEXPRESS;database=MyDatabase;uid=sa;pwd=psw"
objBL.ErrorLogFile = "d:\temp\error.log"
Set FSO = CreateObject("Scripting.FileSystemObject") 
For each Fname in FSO.GetFolder ("d:\xml\").Files 
objBL.Execute "d:\temp\testmapping.xsd", Fname.Path
Next
Set objBL = Nothing
msgbox "готово"


Спасибо Вам огромное, так все работает. А можно узнать почему Fname .Path ?
...
Рейтинг: 0 / 0
SQLXMLBulkLoad в скрипте не работает цикл
    #39929677
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_kpoIIIka eHoT
court
так попробуй (выделил)
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Dim objBL
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=PC\SQLEXPRESS;database=MyDatabase;uid=sa;pwd=psw"
objBL.ErrorLogFile = "d:\temp\error.log"
Set FSO = CreateObject("Scripting.FileSystemObject") 
For each Fname in FSO.GetFolder ("d:\xml\").Files 
objBL.Execute "d:\temp\testmapping.xsd", Fname.Path
Next
Set objBL = Nothing
msgbox "готово"



Спасибо Вам огромное, так все работает. А можно узнать почему Fname .Path ?

потому, что цикл
Код: vbnet
1.
For each Fname in FSO.GetFolder ("d:\xml\").Files 


это, вообще-то, цикл по объектам Scripting.File
Да, у этого объекта есть "свойство по умолчанию" - Path, которое и выводиться при просмотре переменной Fname
Но вот метод objBL.Execute, здесь
Код: vbnet
1.
objBL.Execute "d:\temp\testmapping.xsd", Fname


в Fname видит не "свойство по умолчанию", а именно объект ... нуу и падает с ошибкой

как-то так ...
...
Рейтинг: 0 / 0
SQLXMLBulkLoad в скрипте не работает цикл
    #39929681
_kpoIIIka eHoT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court, спасибо за разъяснения.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SQLXMLBulkLoad в скрипте не работает цикл
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]