![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Strucka |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
Не знаю в какой раздел писать.
Собственно что дано: Есть приложение, никак связанное с базой данных (связь только в целях получения/загрузки данных в оную). Есть ли какой-либо алгоритм или средства, которые бы позволили совершать выгрузку/загрузку в БД тех данных, которые выберет пользователь? Т.е. универсальный механизм доступа не к строго определенным данным, а ко всем. + СУБД может быть любой. Т.Е. алгоритм универсальный что просто жуть как. Тема архиважная для меня сейчас. Если Вам известны какие-либо существующие аналоги, не могли бы поделиться информацией? Мне необязательны примеры реализации подобной структуры (имеется ввиду код), достаточно подробного описания механизма работы. |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Так связанное или не связанное?
угу... получение админских прав... В общем ни фига не понятно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Strucka |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
ЧТоб было понятнее: в данный момент прога подрублена к 2м БД - служебной(SQLite) и основной(ORAcle10gExrpEd), из которой загружается инфа из 2х таблиц.
Мне нужно реализовать механизм выгрузки из основной базы не только данных из 2х таблиц, а дать пользователю некий механизм, с помощью которого он бы мог как выгрузить нужные ему данные из различных таблиц так и корректно их загрузить (файл с выгрузкой некйи формируется, пересылается и на удаленной базе загружается , некая разновидность репликации). Так вот этот механизм нужно реализовать как было сказано выше для любой таблицы из осн базы данных, а еще лучше и для любой СУБД. Другими словами мне нужно написать универсальный коннектор, а через чего его писать odbs или dll ки или еще чего я хз. Подскажите. Как я понимаю: 1) нужно подконнектиться к бд, но к разным СУБД подкл. по разному (версии драйверов и тд.). Как решить проблему? 2)Нужна структура данных (скорее всего что то вроде XML), которую можно приспособить под разную структуру выгрузки даных. Главный вопрос здесь - как реализовать подобную структуру (т.е. сам процесс наполнения файла) для загрузки в том числе. 3)Ну и в разных СУБД - различия в языке вопросов. Как решить проблему? 4)Интерфейс пользователя в этом случае какой сделать (т.е. можно ли из базы данных структуру выдрать, потом пользователь выберет нужные таблицы а дальше по связям в этих таблицах...) Это сообщение отредактировал(а) Strucka - 4.6.2008, 19:11 |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
DSN
Универсально: Id записи, ID поля, Тип, Данные -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Strucka |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
DSN? где почитать? Т.е. в том же XML хранить структуру таблицы? Более менее понятно. Другой момент - когда пользователь выбирает данные, с помощью чего ему можно организовать такой интерфейс (т.е передать инфу о сущ. табл.) Сейчас интерфейс на дельфях. Хотя если воспользоваться тем же принципом что и для XML, можно подумать... |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Для начала скажем тут. Ну не обязательно XML... и не обязательно каждое поле каждой записи... можно использовать, скажем, CSV или пару файл-описАтель и файл-данные...
А нахрена это юзеру? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Strucka |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
А нахрена это юзеру?
Просто поставлена задача организовать реплкацию данных из БД, т.е подразумевается что любых. |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Поставленная задача имхо не может быть решена в зоопарке. Слудует начать с полного согласования форматов и соответствующих данных. А когда эта работа проделана - используешь формат, аналогичный тому, что я описывал выше. Для процедуры слияния используется файл данных, файл структуры и файл спецификации конвертирования из пришедшего формата в локальный. Или две спецификации - из пришедшего формата в универсальный и затем - в локальный. Спецификация должна включать сведения о всех нюансах - преобразование типов и точностей, соответствие имен полей, шаблон синтаксиса добавления и обработки ошибки повторения и пр. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
RockClimber |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 848 Регистрация: 5.5.2006 Где: планета 013 в тен туре Репутация: нет Всего: 15 |
Я конечно лезу не в свое дело, но кем, почему и зачем поставлена такая задача? Может, проще один раз загнать всё, например, в оракл и пользоваться только им? При грамотном пиаре такой идеи даже самое тугое начальство может согласиться... -------------------- Хорошо кинутый дятел далеко летит, крепко встревает, долго торчит. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Проблема не только в том, как выгрузить данные, но и:
1. Правильный порядок закгрузки/выгрузки данных для зависимых таблиц. 2. Разрешение конфликтов. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Strucka |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
Да, именно такие проблемы могут возникнуть. Пока остановился на таком версии: есть плагин , запуская который мы можем произвести из базы выгрузку или загрузку соответсвенно. 1)вызывается плагин, исходя из параметров происх коннект к такой то базе (пусть будет оракл) 2)исходя из тех данных что выбраны пользователем происходит формирование запроса здесь интереснее как формируется запрос ? Допустим польз выберет 3 - 4 таблицы и данные из них, как мы универсально сделаем запрос? 3)потом форимруем выходной XML Ну и 4) если мы загружаем то из исходного XML парсим в базу. Тогда тут тот же вопрос что и как формируется insert в базу? |
|||
|
||||
Strucka |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 66 Регистрация: 27.5.2007 Репутация: нет Всего: нет |
По-поводу универсальной схему - остановился на схеме выгрузки в XML от SQL Server. Помогите нарыть инфу по этому вопросу. Основы мне понятны, хотелось бы подробнее.
|
|||
|
||||
Magnifico |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 418 Регистрация: 23.1.2008 Где: Московская област ь Репутация: 1 Всего: 17 |
http://www.sql.ru/faq/faq_topic.aspx?fid=131
http://www.avalon.ru/OpenLessons/MSSQL/Lessons/Lesson1/ http://www.microsoft.com/Rus/Technet/Magaz...sql_server.mspx -------------------- Всё в порядке - спасибо зарядке ! |
|||
|
||||
Akella |
|
||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 3 Всего: 329 |
Представь, что у тебя есть 2 таблицы, связанные ссылочной целостностью. Т.е. основная таблица и справочник, как правило. Так вот, ты начинаешь импортировать данные в основную таблицу... пытаешься записать значение 12 в поле id_spavochnik основной таблицы, а такой записи (с ID =12) в справочнике нет. Что получаем? Правильно - исключение. Поэтому требуется сначала импортировать данные в справочник. А потом уже и в основную таблицу. Вот такой пример. ![]() Добавлено через 3 минуты и 24 секунды ну т.е. сервер проверит основываясь на ссылочной целостности, можно ли записать значение 12 в основную таблицу, т.е. в справочнике должно быть соответствие, понимаешь? Это сообщение отредактировал(а) Akella - 10.6.2008, 00:17 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Общие вопросы по базам данных" | |
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |