![]() |
|
Модераторы: LSD |
![]()
|
|
| rcdimon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 766 Регистрация: 12.7.2004 Где: Москва Репутация: нет Всего: 2 |
Всем привет.
Мне необходимо написать программу, которая должна уметь работать с различными базами даннх. Для этого все запросы за данными из базы направляются в специальный модуль, который знает с какой базой он работает и компилирует запрос к серверу баз данных в соотвествии с конкретным синтаксисом. Я знаком только с SQL, поэтому прощу помочь мне в поиске различий между базами. |
|||
|
||||
| DimW |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 2 Всего: 44 |
собственно в нем и различие. к примеру этот запрос в ms sql вернет колличество строк из таблицы test_teble:
т.е. условие null = null для этого сервера правдиво. а в оракле этот же запрос вернет 0 строк, т.к. для него условие null = null ложно (ничего не может быть равно ничему...) для оравла следует записать запрос так:
таких принципиальных различий между серверами огромное количество, к тому же постоянно добавляются новые конструкции sql. это очень сложная задача, на которую я бы не тратил свое время. имхо в одиночку и без хорошего финансирования не стравиться. лучше подумайте над тем как перенести данные в обну БД. |
||||
|
|||||
| DimW |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 2 Всего: 44 |
еще как пример, в оракле допускается конструкция:
т.е. поле id таблицы test_table сравнивается с набором значений поля id из test_table2, а name c name. не знаю в каких серверах такая конструкция поддерживается, но факт что не во многих, поэтому вам нужно будет для другова сервера перепесать запрос так:
|
||||
|
|||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 1 Всего: 22 |
rcdimon,
Невозможно. Либо есть конкретные БД с их структурами и есть задача - что должна делать программа, либо имеем "сферического коня в вакууме". Прочитай FAQ-и для начала - поймешь сам. |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 2 Всего: 44 |
на самом деле такие кони есть в природе, такой софт широко используется в хранилищах данных, как правело этим инструментам по барабану с каким источником данных работать, будь то БД или csv. Но т.к. задачей этих инструментов является вывод отчетности, то их реализация не настолько сложна, по сравнению с задачей rcdimon. К таму же эти инструменты не позволяют пользователям напрямую писать запросы, а если и позволяют то синтаксис очень специфичен. |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 7 Всего: 44 |
Позвольте не согласиться. Как пример SAP R/3 (Это конечно монстр, но все же). Можно работать с многими БД и переход на MSSQL, Oracle, DB2 и т.д. не составляет большой проблемы. И функциональность там ... И SQL запросы можно писать, и даже свой язык программирования, но вот этот SQL сильно подрезанный. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| SergeBS |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 1 Всего: 22 |
DimW,
Deniz, Давайте не будем путать программу (вещь прикладную) и средства разработки СУБД и отчетов. ErWin (например) с кучей всяких СУБД может работать, но он не предназначен для юзеров. И не только он. Писать средство разработки в одиночку - смешно, годы понадобятся. Писать средство вывода отчетов - да пожалуйста, только при этом надо-таки знать - какие юзеру отчеты нужны. А иначе - Crystal Reports ему в руки и нехай ваяет что хочет. Например. Или взять FastReport - у него есть возможность включить средство построения отчетов. Или очень хочется свое такого духа наваять? Ну флаг в руки. Через 1-2 года что-то может получится. Но вряд ли. По вопросу достаточно просто определяется квалификация спрашивающего: без обид, это просто факт - "Чтобы правильно задать вопрос нужно знать половину ответа"(С) не знаю чей. |
|||
|
||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 2 Всего: 44 |
2 SergeBS
я ничего не путаю, те средства о которых я говорю позволяют именно юзеру строить ту отчетность которая ему нужна. а вот вы путаете сервер БД с логической структурой. поверьте, я не пытаюсь ни кого ни вчем убедить, я просто привел реальные траблы которые могут возникнуть при написании такова средства, и то что такие средства существуют.
наверное в спешке пропустили... |
|||
|
||||
| SergeBS |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1111 Регистрация: 10.6.2005 Где: Владимир Репутация: 1 Всего: 22 |
DimW,
Т.е. юзер должен знать SQL? Или Crystal Reports? И НАПРЯМУЮ работать с таблицами? Ну-ну. Крутые у вас юзеры... Мне такие почему-то не попадаются. А попадаются такие, что в 3-х кнопках и с инструкцией на 1 листке плутают, вместо файла на дискету/флешку/по email отправляют его ярлык. И т.п.
Еще раз:
Т.е. если неизвестно, с какими данными что нужно делать, то и ничего не сделаешь. Нет задачи. А какая СУБД - не так уж и важно. Из Dbf-ки всегда можно импортировать данные в таблицу SQL-сервера, и наоборот... |
||||||
|
|||||||
| DimW |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1330 Регистрация: 24.2.2005 Где: Орёл Репутация: 2 Всего: 44 |
вовсе нет:
роль программиста заключается в том чтобы предоставить пользователю данные, пусть то сводная таблица или вьюха, а пользователь уже сам решает какие данные ему юзать из этого источника, причем все шаблоны конкретного пользователя сохраняются как его собственные. Естественно о сложной по структуре отчетности и речи быть не может, зачастую это обычные линейные отчеты с группировкой и сортировкой которые определяются все тем же юзером. SergeBS, поверьте естьт такие, т.е. они точно знают какие данные должен им подготовить программист, а набор полей, группировки, объединения источников, сортировки, они определяют сами. естественно что без репортеров такова рода не обойтись когда речь идет о строгой отчетности, а в остольном (то что я описал выше) к примеру инструмент DataStage (один из инструментов о котором я говорю) позволяет дать пользователю возможность получать данные в том виде в котором они ему нужны. Такие инструменты являютяся своего рода прослойками между физическими данными и человеком который ими пользуется, и "пользователю" чаще всего наплевать как физически данные храняться, в одной или в нескольких БД. думаю на сей раз моя точка зрения понятна. Это сообщение отредактировал(а) DimW - 3.9.2007, 12:07 |
|||
|
||||
| batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 1 Всего: 151 |
Ну не факт, кстати. Встроенный в ABAP SQL делится на Native и еще какой-то, не помню терминологии. И если второй, действительно, обрезан до DML, то первый вообще передается непосредственно базе, поэтому никаких ограничений нет. Теперь по теме. rcdimon, а на каком языке планируешь писать своё приложение? Ведь и в Java, и в большинстве других языков есть средства абстрагирования от конкретной базы и SQL-диалекта (Hibernate, JTA...). Велосипед уже изобретён, можно взять имеющийся. -------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |