![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Заполнение таблицы БД данными из файла (csv / xls / txt ...) [D6, MSSQL]
Ольга © (2005-11-13 15:18:00)Каким способом это лучше делать (программно). Лучше - это чтобы железно работало у любого клиента. Скорость не волнует, т.к. данных немного.
Я вижу пока 2 способа:
1. Считать в StringList данные из файла, разобрать поля, сделать insert
2. Использовать BULK INSERT. Но это, на сколько я понимаю, требует хранения файла с данными в директории, доступной серверу БД, о чем клиент, как правило, не в курсе.
Есть еще варианты?
КиТаЯц (2005-11-14 10:01:00) [1]
> Anatoly Podgoretsky © (14.11.05 08:50) [4]
Спорить с авторитетом, конечно же, не буду. ;)
Хотя придерживаюсь мнения "смотря какой обработки". (Вдруг рукопашная правка данных может потребоваться?).
зы. Выполнял сходную задачу. Поставленную условие "чтобы железно работало у любого клиента. Скорость не волнует" выполнил.
Anatoly Podgoretsky (2005-11-14 08:50:00) [2]КиТаЯц © (14.11.05 08:34) [3]
Если требуют предварительной обработки - то все равно [2]
Ольга (13.11.05 15:18)
Если смотреть широко и универсально, например не доступна серверная сторона, то текстовый файл, построчное считываение, разборка строки и запись запросом.
Для xls конечно другие методы, это же не текст, там достаточно будет использовать методы сом (ole) сервера.
КиТаЯц (2005-11-14 08:34:00) [3]Если есть гарантия, что данные правильно структурированы - [2]
Если требуют предварительной обработки - [0] (через StringGrid)
tesseract (2005-11-13 17:41:00) [4]На фиг тебе stringList ?
Считываешь данные в память (если по мещаются). Дальше небольшими транзакциями на сервер. Я так из 1c в MYSQL данные о товарах людям делал.
Shaman_ (2005-11-13 16:11:00) [5]У себя в базе, для универсального импорта данных писал модуль на 1,5K строк кода %), который приводит с помощью скриптов данные к единой структуре и размещает в TClientDataSet. Из TClientDataSet уже в базу данных с помощью Insert - в общем что то вроде способа №1