|
|
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
Здравтсвуйте. Такой вопрос. Как можно организовать сбор данных в основную БД из нескольких файлов БД, абсолютно идентичных по структуре. Существует несколько БД с абсолютно одинаковой структурой таблиц. Всё до невозможного просто. Заполняются поля и всё по сути. Данных довольно много. Существует Основная БД. файлы присылаются по электронке и есть необходимость из этих файло *mdb все данные собирать в основнуб БД. И по возможности, чтобы они не плюсовались всегда в неё (с каждым новым файлом, его будут присылать ежемесячно), а просто добавлялись новые. Такое возможно? подскажите. Заранее спасибо огромное за отзывы. MS Access 2003. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 05:23:51 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
Проще всего прилинковать пример базы, которую присылают, создать необходимые запросы, которые вытаскивали бы только новые данные. Затем при получении нового файла просто перелинковываем таблицы на новый файл и запускаем запросы извлечения данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 06:09:41 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
Можно также не перелинковывать, а использовать копию присланного файла, которая заменяла бы предыдущий обработанный файл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 06:11:32 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
Можно. Как раз занимаюсь похожей задачей для торговой сети. Понимаю, что делаю довольно топорно, но работает нормально. Наберусь опыта - сделаю изящнее ) Соображения по поводу вашего вопроса. Если у вас есть несколько БД с "абсолютно одинаковой структурой таблиц", которые вы планируете собирать в одну базу, то вам надо решить предварительно несколько вопросов. Вы хотите все-все-все таблицы из каждой базы кидать в общую? Или какие то итоговые таблицы-выборки? Данные будут собираться в одну общую таблицу (таблицы), или для каждой исходной базы будет создана и вестись своя уникальная таблица - типа для База1 - Tab1, База2 - Tab2, Tab3...TabN? Если в общие таблицы - то вам надо продумать уникальные идентификаторы для каждой из исходных баз, что бы потом в общей куче вы могли определить, "чья чьё". Тут удобно использовать составные ключевые поля в таблицах. Например "ДатаЗаписи" + "ИдентификаторБазы" (например - База1, База2)+IDЗаписи. Насколько будет автоматизирована передача и обработка? У меня, например, данные передаются через транзитный файл (который потом передаётся по емейлу или на флешке). Исходная база в него загружает свои данные, база-получатель забирает. Понятное дело, желательно и удобно "накрутить" алгоритмы проверки наличия каталога, файла в каталоге, таблиц в файле, очистки транзитного файла. Далее уже обработка принимаемых данных в самой базе. Просто сразу запросом на добавление, или же с какой то предварительной проверкой правильности данных. Например - проверка на пустые поля, даты вне диапазона, нечаянно вставленные цифры в фамилии и так далее. Ну и сжатие потом обязательно. Желательно - автоматом. После чего - сделать формы, отчёты для выборки и просмотра нужных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 06:12:11 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
База сама до простого простая. Там простые не замороченные поля. Никаких связей. По поводу вычислений. Надо просто забирать данные из одного, например файла с таблицей в другой файл т такой же таблицей, без каких либо вычислений. Запросы будут производиться уже в основной таблице. Задача просто автоматизированно взять данные из одного файла (таблицы) и получить в основную другой файл с такой же точно таблицей. Уже сделали запрос, который передаёт из файла источника в файл основной, но их 10 файлов каждый месяц. И надо каждый раз писать запрос в каждой из 10ти баз....это не то... Знаю, что как то полюбому можно сделать запрос (SQL) в основной таблице и он будет вытягивать данные из этих файлов...Фиг с ним, пусть даже каждый раз нам будут присылать новую БД (т.е. там на местах будут каждый месяц начинать новую, чистую таблицу), хотя хотелось бы конечно, чтобы записи хранились всегда на местах в одной БД (файле).... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 06:50:00 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
Здесь я так думаю есть какой то sql запрос для импорта данных из файлов.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 07:05:00 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
Ну так пробуйте. Технологию в общих чертах рассказали, будут конкретные вопросы - пишите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 07:18:52 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
Спасибо. Попробовал) Конекретный вопрос. Есть ли скелет запроса SQL, который импортирует данные в основную таблицу из многих файлов? Запрос должен находиться в основной базе. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 07:33:04 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
SergeySA, Код: sql 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 08:51:01 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
А вам точно нужно вставлять из нескольких одинаковых таблиц одновременно ? Как я понял, файлы с одинаковой структурой таблиц приходят в письмах и их можно обрабатывать по очереди, не цепляя таблицы из разных файлов к главной базе одновременно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 09:08:21 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
SergeySAфайлы присылаются по электронке Это ключевой момент - значит есть интернет... Можно делать обмен данными через сервер с MySql В точке: подключился, прилинковал, запросом залил. В офисе: подключился, прилинковал, получил. Можно делать принудительно, можно автоматизировать по событиям или расписанию, используя флаги, состояние счетчиков и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 09:14:36 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
INSERT INTO Главная_таблица (Select * From 1КопияИзКоторойВставляем union Select * From 2КопияИзКоторойВставляем union Select * From 3КопияИзКоторойВставляем ); вот спасибо попробую, что то вроде...... сервера нет sql таблица в базе всего одна с данными......... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 09:19:55 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
MrShinА вам точно нужно вставлять из нескольких одинаковых таблиц одновременно ? Как я понял, файлы с одинаковой структурой таблиц приходят в письмах и их можно обрабатывать по очереди, не цепляя таблицы из разных файлов к главной базе одновременно конечно не обязательно прям одновременно......можно и отдельно могу в основной таблице, куда должны стекаться данные написать 10 запросов и пусть они из 10 файлов получают данные....главное, чтобы всё это в таблице приёмнике были запросы....и по возможности обновлялись, а не добавлялись каждый раз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 10:04:32 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
тут ещё одно. я несколько профан в sqlююююмогу понимать принципы, но сделать не....так, что и обратился за готовым как бы запросом.....т.е. структурой.....пути сам вставлю конечно все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 10:05:37 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
SergeySAнаписать 10 запросов Зачем писать 10 запросов? Напишите один, который вытаскивает данные из одного файла, а затем файл подменяйте новым и запускайте тот же запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 10:22:32 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
MrShinЗачем писать 10 запросов? Напишите один, который вытаскивает данные из одного файла, а затем файл подменяйте новым и запускайте тот же запрос. Зачем выполнять дополнительные действия в файловой системе, выходя за рамки оболочки? проще использовать динамически строящийся запрос, получив список файлов для обработки через, скажем, FSO или CommonDialog.FileOpenDialog... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 10:43:46 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
Akina, Лично я бы сделал через перелинковку таблиц после выбора конкретного файла и/или пакетную обработку всех файлов в директории, но, боюсь, ТС будет сложновато это сделать, гораздо проще "подсунуть" файл в определенное место с определенным именем и запустить запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 13:05:46 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
MrShinAkina, Лично я бы сделал через перелинковку таблиц после выбора конкретного файла и/или пакетную обработку всех файлов в директории, но, боюсь, ТС будет сложновато это сделать, гораздо проще "подсунуть" файл в определенное место с определенным именем и запустить запрос. Да думаю, что скорее всего так пробовать..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 04:26:48 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
MrShinЛично я бы сделал через перелинковку таблиц после выбора конкретного файла и/или пакетную обработку всех файлов в директории Ну перелинковывать или динамически строить запрос - это уже не так важно. Перелинковка мне просто не нравится тем, что файл может быть удалён, и тогда при запуске и работе могут возникнуть ненужные проблемы и ошибки. А динамический не сохраняемый в статике (хотя пусть бы даже и сохраняемый - просто не надо пытаться его выполнить, явно или неявно) запрос выполнился и забылся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 09:28:32 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
Тогда стоит упомянуть, что можно через SQL обращаться к таблицам во внешних фалах без прилинковки как к обычным таблицам: Код: sql 1. Может кто-то не знает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 09:58:14 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
MrShinТС будет сложновато это сделать, гораздо проще "подсунуть" файл в определенное место с определенным именем и запустить запрос.А что в этом варианте плохого? У меня лежат эти шаблоны по известному адресу, таблицы всегда прилинкованы (при запуске линкуется всё). Экспорт/импорт данных включённых в выборку делается в этот файл. И всё. Если пользователи удалили файл, то он будет восстановлен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 10:39:40 |
|
||
|
Сбор сведений в основную БД
|
|||
|---|---|---|---|
|
#18+
MrShinможно через SQL обращаться к таблицам во внешних фалах без прилинковки как к обычным таблицамНу говоря о динамически строящемся запросе, я в основном именно это - указание внешнего файла в качестве источника данных,- и имел в виду. Разве что для именно таблицах в других Аксессовских БД лучше использовать специальный штатный синтаксис Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 11:16:32 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=39294354&tid=1613254]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
227ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
2ms |
| others: | 191ms |
| total: | 535ms |

| 0 / 0 |
