» Навигация
- - - - - - - - - - - - - - - -
  » Наша кнопка
- - - - - - - - - - - - - - - -
  » Книги
- - - - - - - - - - - - - - - -
   » Из CSV в SQL при помощи VBScript
 
Автор: Алексей Голубев
Источник: www.frnet.narod.ru

Данная заметка посвящена теме работы с FileSystemObject. Рассмотренный пример достаточно тривиален. Предположим у нас есть следующая задача: В CSV-файле хранятся данные о кодах и названиях стран мира. Необходимо всю информацию, содержащуюся в файле загрузить в базу данных.

Файл имеет следующий формат:

Code, Country
AU, Австралия
AT, Австрия
AZ, Азербайджан
...
JM, Ямайка
JP, Япония

Для загрузки данных в базу мы можем сгенерировать на основе предоставленного CSV-файла SQL-код, который создавал бы таблицу и заносил в нее соответствующие записи.

Рассмотрим решение данной задачи. Для простоты решения напишем небольшой скрипт на VBScript, который будет создавать текстовый файл с необходимыми SQL-запросами. Назовем его generate_sql.vbs. Пусть имя CSV-файла будет country.csv, а сгенерированный файл будет называться, например country.sql. Нам необходимо выполнить следующие действия: записать в новый файл SQL-запрос создания таблицы, переписать все записи из CSV-файла, пропустив первую строку, так как в ней находится заголовок, в виде SQL-запросов на добавление записи в таблицу.

Const ForReading = 1, ForWriting = 2
Dim fso, f1, f2, Line
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.OpenTextFile("country.csv", ForReading)
Set f2 = fso.OpenTextFile("country.sql", ForWriting, True)
f1.SkipLine()
f2.WriteLine("CREATE TABLE country (c varchar(3), country varchar(100));")
Do While not f1.AtEndOfStream
	Line = f1.ReadLine()
	Line = Split(Line,", ")
	f2.WriteLine("INSERT INTO country (c, country) VALUES ('"+Line(0)+"','"+Replace(Line(1), "'", "''")+"');") 
Loop

Что имеем в итоге: CSV-файл с исходными данными, VBS-файл (обработчик, должен находится в той же папке, что и CSV-файл) запускающийся по двойному щелчку на нем и, наконец, результат обработки – SQL-файл, содержимое которого можно открыть клиентом базы данных.

Примечание. В различных базах данных, либо в различных версиях одной и той же базы данных может немного отличатся синтаксис SQL-запросов. В таком случае необходимо просто подкорректировать генерируемый в скрипте запрос в соответствии с синтаксисом используемой базы данных. Приведенный пример создан на основе синтаксиса базы данных Oracle.

Пример вы можете скачать по ссылке: http://www.frnet.narod.ru/script/article/0054.zip

Статьи по теме

Создание файлов при помощи JavaScript и VBScript
Работа с каталогами. Часть 1
Работа с каталогами. Часть 2
Чтение информации из текстового файла
Проверка наличия файла
Копирование, перемещение, удаление файлов с клиентского компьютера
Еще немного о работе с файлами...
 

  » Друзья сайта
- - - - - - - - - - - - - - - -
  » Разное
- - - - - - - - - - - - - - - -
  » Счетчики
- - - - - - - - - - - - - - - -
  Дизайнер и ведущий проекта: Голубев Алексей
Copyright Alexei Golubev © 2004 — 2011
Hosted by uCoz