powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Совместимость синтаксиса MS SQL, MySql, FireBird
25 сообщений из 70, страница 1 из 3
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33635854
Anatoliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день всем.
У меня вопрос к коллегам, знающим синтаксис MySQL, FireBird.
Насколько совместим синтаксис запросов в MySQL, FireBird и MS SQL.
Т.е., если в коде приложения все данные вытягиваются или обновляются из базы путем формирования SQL запросов.
Ну что-то типа:
Dim aDS As New DataSet
Dim sB As New StringBuilder
Dim da As New SqlDataAdapter
Dim cmd As New SqlCommand

sB.Append("SELECT tableID, tableName FROM tables ")
sB.Append("WHERE tableID = " & iTblID.ToString)
.....
cmd.CommandText = sB.ToString
da.SelectCommand = cmd
da.Fill(aDS, aTblName)

Получили датасет ... ну и дальше пошла логика работы с результатами запроса.

Т.е. сможет ли такое приложение работать с любой из перечисленных СУБД.
В плане совместимости MS SQL - Access - приложение успешно прошло экзамен. Ну пришлось отказаться от пары хранимых процедур для совместимости с Access.
Или же переписать строку подключения будет недостаточно. И прийдется перелопачивать весь код.
Спасибо.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636028
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Они совместимы на очень "базовом", примитивном уровне. То есть на запросах вроде приведенных вами. Вообще, вы идете по печально известному пути написания независимых от СУБД приложений. Путь этот достижим только при полном отказе от сколько-нибудь сложных запросов, от триггеров и ХП, от встроенных в СУБД механизмов репликации и т.д. (то есть грубо говоря от всего того, что составляет мощь СУБД), либо за счет встраивания нескольких аналогов одного и того же функционала для N разных предусмотренных СУБД (то есть фактически стоимость разработки умножаем на N или около того).

Успехов.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636064
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mir wrote:
> Они совместимы на очень "базовом", примитивном уровне. То есть на
> запросах вроде приведенных вами. Вообще, вы идете по печально известному
> пути написания независимых от СУБД приложений. Путь этот достижим только
> при полном отказе от сколько-нибудь сложных запросов, от триггеров и ХП,
> от встроенных в СУБД механизмов репликации и т.д. (то есть грубо говоря
> от всего того, что составляет мощь СУБД), либо за счет встраивания
> нескольких аналогов одного и того же функционала для N разных
> предусмотренных СУБД (то есть фактически стоимость разработки умножаем
> на N или около того).
краткая врезка об универсальном приложениии

Водитель, помни!
Если ты одновременно ведешь машину и целуешь девушку - и то и другое ты
делаешь плохо!

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636079
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky

Аплодирую.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636120
Anatoliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен.
Только приложение уже есть.
И хотелось бы прикинуть на вскидку, стоит ли его "лепить" к MySql FireBird или там прийдется половину кода переделывать.
Т.е, прежде, чем искать (скачивать) дистрибутивы указанных СУБД, устанавливать и разбираться с тонкостями, просто спросить тех, кто уже с такими СУБД работал.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636126
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoliy wrote:
> Согласен.
> Только приложение уже есть.
> И хотелось бы прикинуть на вскидку, стоит ли его "лепить" к MySql
> FireBird или там прийдется половину кода переделывать.
А для зачем его ваще лепить к ним? таки есть обоснованная необходимость
или так, для плезиру?

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636170
Anatoliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попался заказчик на нашу программу, который хотел бы обойтись бесплатной СУБД (т.е. купить только интерфейсную оболочку). Ну секономить таким образом. Вот я и пробую навскидку определить, стоит ли заморачиаться. Т.е. дальше прийдется вникать в это дело более подробно. А пока не влез в тонкости, решил спросить коллег, которые работали и с тем и с тем (я имею в виду MS SQL и бесплатные СУБД).
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636178
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoliyили там прийдется половину кода переделывать.
Придется. Одни только форматы дат наверняка подкинут немало приятных минут.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636211
Anatoliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
Придется. Одни только форматы дат наверняка подкинут немало приятных минут.
Ага, значит фокус как c Access в данном случае не прокатит.
Спасибо. Буду думать. А поставить одну из указанных СУБД и поюзать наугад, наверное на выходных все же прийдется.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636214
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, softwarer!
Ты пишешь:

softwarerОдни только форматы дат наверняка подкинут немало приятных минут.
Если не пользовать параметризированных запросов
и как совсем полохой, "втыкать" дату в текст запроса.

--
With best regards, Мимопроходящий.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636230
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoliy wrote:
> Попался заказчик на нашу программу, который хотел бы обойтись бесплатной
> СУБД (т.е. купить только интерфейсную оболочку). Ну секономить таким
> образом. Вот я и пробую навскидку определить, стоит ли заморачиаться.
> Т.е. дальше прийдется вникать в это дело более подробно. А пока не влез
> в тонкости, решил спросить коллег, которые работали и с тем и с тем (я
> имею в виду MS SQL и бесплатные СУБД).
Могу и ошибаться, но MSDE и SQLExpress - бесплатные.

--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636393
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МимопроходящийЕсли не пользовать параметризированных запросов
и как совсем полохой, "втыкать" дату в текст запроса.
См. первое письмо этого топика.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636395
Ц4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ц4
Гость
Не так страшны даты при правильном использовании в непараметризованных запросах

формат 'yyyy-mm-dd' работает и в MSSQL и в FireBird
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636403
Ц4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ц4
Гость
Не подумайте плохого - я не призываю пользовать непараметризованные запросы
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636425
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mirОни совместимы на очень "базовом", примитивном уровне. То есть на запросах вроде приведенных вами. Вообще, вы идете по печально известному пути написания независимых от СУБД приложений. Путь этот достижим только при полном отказе от сколько-нибудь сложных запросов, от триггеров и ХП, от встроенных в СУБД механизмов репликации и т.д. (то есть грубо говоря от всего того, что составляет мощь СУБД), либо за счет встраивания нескольких аналогов одного и того же функционала для N разных предусмотренных СУБД (то есть фактически стоимость разработки умножаем на N или около того).


Это некорректно. Триггеры, репликация и ХП здесь совершенно не причём. GUI-программа типа приведённой выше о триггерах и репликации просто не знает, да и вызов SP имеет похожий синтаксис.

Я в разработке пользуюсь Object-Relation framework'ом под названием GLORP, а раньше использовал TOPLink/S, они позволяют делать многие (хотя, к сожалению, и не все) вещи независимыми от СУБД. Соль в том, что программа, в том числе и запросы, даже очень сложные, пишутся на Smalltalk'е, а GLORP и TOPLink/S их транслируют на SQL с учётом особенностей сервера.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636620
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor MetelitsaЭто некорректно. Скажем так, это просто упрощенное изложение.
Victor MetelitsaТриггеры, репликация и ХП здесь совершенно не причём. GUI-программа типа приведённой выше о триггерах и репликации просто не знает, да и вызов SP имеет похожий синтаксис. Это почти так. Однако сколько-нибудь сложная ИС все эти прелести обязательно использует. А если ИС без них, то значит она весьма простая, что и требовалось доказать.
Victor MetelitsaЯ в разработке пользуюсь Object-Relation framework'ом под названием GLORP, а раньше использовал TOPLink/S, они позволяют делать многие (хотя, к сожалению, и не все) вещи независимыми от СУБД. Соль в том, что программа, в том числе и запросы, даже очень сложные, пишутся на Smalltalk'е, а GLORP и TOPLink/S их транслируют на SQL с учётом особенностей сервера.А вот тут позвольте не поверить. Я не первый год пишу на SQL и знаю, что для сложных запросов нюансы конкретной СУБД жизненно важны. Видимо, мы по разному с вами понимем "сложность" запросов. Я уверен, что эта ваша (весьма странная) связка приемлемо сработает только на примитивнейших по моим меркам запросах, а на сложных даст просто ужасающее по производительности решение. Впрочем, если оно вас удовлетворяет, рад за вас. Но в целом предложенный подход IMHO имеет очень узкую нишу, хотя бы потому, что все задачи нужно решать на наиболее приспособленном для этого инструменте. А для задач работы с конкретной СУБД наиболее приспособлен собственный язык этой СУБД, то есть обычно конкретный диалект SQL.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33636881
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnatoliyПопался заказчик на нашу программу, который хотел бы обойтись бесплатной СУБД (т.е. купить только интерфейсную оболочку). Ну секономить таким образом. Вот я и пробую навскидку определить, стоит ли заморачиаться. Т.е. дальше прийдется вникать в это дело более подробно. А пока не влез в тонкости, решил спросить коллег, которые работали и с тем и с тем (я имею в виду MS SQL и бесплатные СУБД).
Если изначально не придерживались "голого" SQL 92 и не использовали какой-то "слой абстракции от СУБД" наподобие GLORP, TOPLink/S, Pear:DB, AdoDB, обменивающий функциональность и производительность на единообразие работы с разными СУБД - IMHO придётся переписывать и, что страшее, перетестировать почти всё.

Если придерживались и использовали - переписывать чуть меньше, а тестировать несколько сложнее из-за непредсказуемости "слоя абстракции от СУБД". Вы уверены, что этот заказчик - не единственный, кому захочется FireBird, и что дело того стоит?
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33637200
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какие-то пораженьческие настроения.

Полной совместимости нет. Например выбрать первые 10 записей

MS SQL - select top 10 ...
Firebird - select first 10 ...
PostgreSQL - select limit 10
Interbase до версии 6.5 - вообще не поддерживает

но эти разночтения конечны и их достаточно просто где-то хранить в настройках и строить с их учётом запрос.

Дополнительные проблемы могут возникнуть с форматами данных, например разделитель десятичых цифр точка или запятая, формат дат в дд.мм.гггг или мм.дд.гггг. Но подобные проблемы могут возникнуть и в одном сервере с разными настройками, избежать их можно используя биндинг переменных а не создавая текстову строку запроса т.е. вместо

String dt=String(CurDate())
execute('select * from table1 where field1="'+dt+'" order by 1')

писать
Date dt=CurDate()
execute('select * from table1 where field1=?dt order by 1')

- переводом в нужный формат будет заниматься драйвер, поддерживается и в одбц и в оледб, синтаксис зависит от языка разработки клиента

ещё проблема может быть в отстойных бесплатных компонентах доступа. У мсскл вероятно всё пучком будет (этож микрософт) а у опенсорсного драйвера для файрбёрда этот самы биндинг может не поддерживаться к примеру.



одним словом для универсальности конечно придётся какие-то дополнительные усилия прилагать. Кому-то это покажется неподъёмным, кому-то простым. По условиям решать.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33637532
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024Полной совместимости нет. Например выбрать первые 10 записей
Расскажи, пожалуйста, как выполнить на этих серверах описанную в SQL92 конструкцию EXCEPT и сколько каких настроек для этого потребуется.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33637558
Random_Goodman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю насчет бесплатных СУБД

В компании где я работал, переделывали версию проги с Оракла на MSSQL по требованию заказчика

Ушло на это около 1\4 общего времени написания всей проги с нуля

И ресурсов столько же
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33637861
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Расскажи, пожалуйста, как выполнить на этих серверах описанную в SQL92
конструкцию EXCEPT и сколько каких настроек для этого потребуется.
----------------
понятия не имею. И огромное количество разработчиков под сервера
поддерживающие ексепт даже о нём и не слышали.

Это так, к сведению


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33637897
mir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024какие-то пораженьческие настроения.Да можно, можно сделать-то. Но чем сложнее система и кучерявее запросы (особенно для сложных отчетов), тем трудозатраты будут выше. Тут никаким хранением "настроек" не поможешь. Ведь сложный запрос есть не просто один большой SELECT, а по сути целый скрипт с переменными (в т.ч. таблицами-переменными), циклами, курсорами и т.д.
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33637923
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
решение принимается в соответствии с конкретными условиями
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33638025
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024 wrote:
> понятия не имею. И огромное количество разработчиков под сервера
> поддерживающие ексепт даже о нём и не слышали.
огромное количество разработчиков под тот-же MS SQL понятия не имеет о
left/right/full/cross join, exists, distinct, begin tran.... и чо?
неумность отдельных разработчиков не есть фактор!

зы какое у меня язык корявое :-)
--
-------------------------
There's no silver bullet!
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Совместимость синтаксиса MS SQL, MySql, FireBird
    #33638047
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
огромное количество разработчиков под тот-же MS SQL понятия не имеет о
left/right/full/cross join, exists, distinct, begin tran.... и чо?
-------------------

а то что "решение принимается в соответствии с конкретными условиями"


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
25 сообщений из 70, страница 1 из 3
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Совместимость синтаксиса MS SQL, MySql, FireBird
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]