![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Альтернативная загрузка данных
-=Vlad=- © (2003-07-18 19:11:00)
Мастера кто нибудь может подсказать альтернативный способ загрузки данных в БД. Я краем глаза слышал в нете про спец файлы с маркерами... или чтото подобное. Помогите раскрыть тему.
Sable (2003-07-29 01:28:00) [1]
Может не совсем в тему, но мне интересно, какими способами можно организовать заливку большого количества данных под IB server програмно? Через внешние таблицы - долго, select - insert не лучше. А как пакетами?
stone (2003-07-23 12:34:00) [2]
> для сетевых MSSQL
BULK, BULK INSERT
-=Vlad=- (2003-07-23 12:23:00) [3]
Romkin © (21.07.03 18:19)
А представте что Вам необходимо загрузить надо не 5 записей а 50000, и каждый день, что тогда? Это не то слово как объемно, и ОЧЕНЬ долго.
Для этого случая есть так называемые пакетные загрузки данных, когда за одно обращение в БД в нее вливается более одной записи. Именно об этом я хотел поговорить и в результате найти какой то один обобщенный способ работающий на большинстве СУБД, но как видно это невозможно т.к. насколько я понял на по этому вопросу нет стандарта и каждый разработчик если и решает эту проблему то по своему.
Romkin (2003-07-21 18:19:00) [4]
Хм... Для IB мне достаточно примерно такого:
SET SQL DIALECT 3;
SET NAMES WIN1251;
CONNECT "localhost:D:\chaos5\Test.gdb" USER "SYSDBA" PASSWORD "masterkey";
INSERT INTO MARKNAME (MARK_ID, MARK_NAME) VALUES (10005, "неудовлетворительно");
INSERT INTO MARKNAME (MARK_ID, MARK_NAME) VALUES (10006, "удовлетворительно");
INSERT INTO MARKNAME (MARK_ID, MARK_NAME) VALUES (10007, "хорошо");
INSERT INTO MARKNAME (MARK_ID, MARK_NAME) VALUES (10008, "отлично");
INSERT INTO MARKNAME (MARK_ID, MARK_NAME) VALUES (10012, "плохо");
COMMIT WORK;
Довольно объемно, правда, зато всегда можно руками поправить
Serginio (2003-07-21 18:17:00) [5]
Прежде чем говорить об альтернативных загрузках данных, надо привязываться к конкретной СУБД. Напрмер Загрузка из текстовых файлов и XML достаточно широко распространена. Возможны и другие варианты.
Romkin (2003-07-21 18:14:00) [6]
Ну как? обычно пишется скрипт, в котором идут друг за другом команды insert into, и при загрузке скрипта они все выполняются.
-=Vlad=- (2003-07-21 18:09:00) [7]
Если речь идет об отнострочной команде INSERT INTO ..., то это слишком долго, и не по теме. А вот если о пакетной заглузке, то можно ли поподробней.
Sergey13 (2003-07-21 18:01:00) [8]
2Romkin © (21.07.03 17:30)
>Скрипт с выражениями insert into ... ; должен пойти на большинстве БД
Наверное. Но что в этом "альтернативного"? Это как раз самый что ни на есть стандартный. Автор видимо имел в виду нечто вроде Ораклового SQL*Loader а. А такие утилиты, ИМХО, оригинальны для каждой СУБД, ибо используют низкоуровневый доступ к базе.
Romkin (2003-07-21 17:30:00) [9]
Скрипт с выражениями insert into ... ; должен пойти на большинстве БД, вопрос в некоторых дополнительных деталях, таких как соединение с БД/создание БД. Но это можно хранить отдельно в заголовочных файлах
-=Vlad=- (2003-07-21 17:14:00) [10]
Для локальных я использую ADO+Access, для сетевых MSSQL. Но вопрос не в том,а в том чтобы способ работал на большинстве СУБД.
Возможно ли такое, или для каждой прийдется изобретать свой собственный?
roottim (2003-07-21 17:05:00) [11]
в общем смысле это SQL INSERT INTO...
а остальное это смысл раздельный... как уж кто заботиться о своих клиентах...
вот оракл напр имеет ср-во закаки б-х объемов через direct доступ...
да нем построена утилита SQL*Loader, можно эту опцию юзать через OCI.DLL либа напрямую, либо прямыми компонентами доступа..
Sandman25 (2003-07-21 16:51:00) [12]
-=Vlad=- © (21.07.03 16:39)
Под Informix загрузка осуществляется одной командой
LOAD FROM "filename" INSERT INTO table
Так что лучше все-таки указать СУБД IMHO :)
-=Vlad=- (2003-07-21 16:39:00) [13]
CУБД - без конкретизации, если вы знаете способ под конкретную БД, то опишите, постараемся обобщить. Повторюсь речь идет не о конкретной задаче, а способе. Так что любая инфа по данной теме будет полезна.
Zacho (2003-07-21 14:25:00) [14]
А какая СУБД и компоненты доступа ?
-=Vlad=- (2003-07-21 14:18:00) [15]
А каким способом загружать в БД?
Sandman25 (2003-07-21 10:40:00) [16]
В каждой строчке файла находится одна запись.
Поля разделяются спец. символом, которого не может быть в данных.
Например,
1|Name1|Descr1|
2|Name2|Descr2|
и т.д.
-=Vlad=- (2003-07-21 10:37:00) [17]
Формат роли не играет, его можно предварительно сделать нам подходящим. В данном случае я не решаю конкретную задачу, а просто пытаюсь разобраться в теме, хотя вопрос очень важен с его использованием можно решить проблемы загрузки больших объемов информации в БД. Думаю это интересно многим.
KDS (2003-07-18 19:40:00) [18]
А в каком формате изначально данные?