Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Добрый день всем. У меня вопрос к коллегам, знающим синтаксис 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. Или же переписать строку подключения будет недостаточно. И прийдется перелопачивать весь код. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 17:16 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Они совместимы на очень "базовом", примитивном уровне. То есть на запросах вроде приведенных вами. Вообще, вы идете по печально известному пути написания независимых от СУБД приложений. Путь этот достижим только при полном отказе от сколько-нибудь сложных запросов, от триггеров и ХП, от встроенных в СУБД механизмов репликации и т.д. (то есть грубо говоря от всего того, что составляет мощь СУБД), либо за счет встраивания нескольких аналогов одного и того же функционала для N разных предусмотренных СУБД (то есть фактически стоимость разработки умножаем на N или около того). Успехов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 18:18 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
mir wrote: > Они совместимы на очень "базовом", примитивном уровне. То есть на > запросах вроде приведенных вами. Вообще, вы идете по печально известному > пути написания независимых от СУБД приложений. Путь этот достижим только > при полном отказе от сколько-нибудь сложных запросов, от триггеров и ХП, > от встроенных в СУБД механизмов репликации и т.д. (то есть грубо говоря > от всего того, что составляет мощь СУБД), либо за счет встраивания > нескольких аналогов одного и того же функционала для N разных > предусмотренных СУБД (то есть фактически стоимость разработки умножаем > на N или около того). краткая врезка об универсальном приложениии Водитель, помни! Если ты одновременно ведешь машину и целуешь девушку - и то и другое ты делаешь плохо! -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 18:32 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
locky Аплодирую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 18:39 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Согласен. Только приложение уже есть. И хотелось бы прикинуть на вскидку, стоит ли его "лепить" к MySql FireBird или там прийдется половину кода переделывать. Т.е, прежде, чем искать (скачивать) дистрибутивы указанных СУБД, устанавливать и разбираться с тонкостями, просто спросить тех, кто уже с такими СУБД работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:01 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Anatoliy wrote: > Согласен. > Только приложение уже есть. > И хотелось бы прикинуть на вскидку, стоит ли его "лепить" к MySql > FireBird или там прийдется половину кода переделывать. А для зачем его ваще лепить к ним? таки есть обоснованная необходимость или так, для плезиру? -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:03 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Попался заказчик на нашу программу, который хотел бы обойтись бесплатной СУБД (т.е. купить только интерфейсную оболочку). Ну секономить таким образом. Вот я и пробую навскидку определить, стоит ли заморачиаться. Т.е. дальше прийдется вникать в это дело более подробно. А пока не влез в тонкости, решил спросить коллег, которые работали и с тем и с тем (я имею в виду MS SQL и бесплатные СУБД). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:23 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Anatoliyили там прийдется половину кода переделывать. Придется. Одни только форматы дат наверняка подкинут немало приятных минут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:25 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Спасибо. Буду думать. А поставить одну из указанных СУБД и поюзать наугад, наверное на выходных все же прийдется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:39 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Привет, softwarer! Ты пишешь: softwarerОдни только форматы дат наверняка подкинут немало приятных минут. Если не пользовать параметризированных запросов и как совсем полохой, "втыкать" дату в текст запроса. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:41 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Anatoliy wrote: > Попался заказчик на нашу программу, который хотел бы обойтись бесплатной > СУБД (т.е. купить только интерфейсную оболочку). Ну секономить таким > образом. Вот я и пробую навскидку определить, стоит ли заморачиаться. > Т.е. дальше прийдется вникать в это дело более подробно. А пока не влез > в тонкости, решил спросить коллег, которые работали и с тем и с тем (я > имею в виду MS SQL и бесплатные СУБД). Могу и ошибаться, но MSDE и SQLExpress - бесплатные. -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 19:48 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
МимопроходящийЕсли не пользовать параметризированных запросов и как совсем полохой, "втыкать" дату в текст запроса. См. первое письмо этого топика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 22:14 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Не так страшны даты при правильном использовании в непараметризованных запросах формат 'yyyy-mm-dd' работает и в MSSQL и в FireBird ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 22:16 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Не подумайте плохого - я не призываю пользовать непараметризованные запросы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 22:24 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
mirОни совместимы на очень "базовом", примитивном уровне. То есть на запросах вроде приведенных вами. Вообще, вы идете по печально известному пути написания независимых от СУБД приложений. Путь этот достижим только при полном отказе от сколько-нибудь сложных запросов, от триггеров и ХП, от встроенных в СУБД механизмов репликации и т.д. (то есть грубо говоря от всего того, что составляет мощь СУБД), либо за счет встраивания нескольких аналогов одного и того же функционала для N разных предусмотренных СУБД (то есть фактически стоимость разработки умножаем на N или около того). Это некорректно. Триггеры, репликация и ХП здесь совершенно не причём. GUI-программа типа приведённой выше о триггерах и репликации просто не знает, да и вызов SP имеет похожий синтаксис. Я в разработке пользуюсь Object-Relation framework'ом под названием GLORP, а раньше использовал TOPLink/S, они позволяют делать многие (хотя, к сожалению, и не все) вещи независимыми от СУБД. Соль в том, что программа, в том числе и запросы, даже очень сложные, пишутся на Smalltalk'е, а GLORP и TOPLink/S их транслируют на SQL с учётом особенностей сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2006, 22:47 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Victor MetelitsaЭто некорректно. Скажем так, это просто упрощенное изложение. Victor MetelitsaТриггеры, репликация и ХП здесь совершенно не причём. GUI-программа типа приведённой выше о триггерах и репликации просто не знает, да и вызов SP имеет похожий синтаксис. Это почти так. Однако сколько-нибудь сложная ИС все эти прелести обязательно использует. А если ИС без них, то значит она весьма простая, что и требовалось доказать. Victor MetelitsaЯ в разработке пользуюсь Object-Relation framework'ом под названием GLORP, а раньше использовал TOPLink/S, они позволяют делать многие (хотя, к сожалению, и не все) вещи независимыми от СУБД. Соль в том, что программа, в том числе и запросы, даже очень сложные, пишутся на Smalltalk'е, а GLORP и TOPLink/S их транслируют на SQL с учётом особенностей сервера.А вот тут позвольте не поверить. Я не первый год пишу на SQL и знаю, что для сложных запросов нюансы конкретной СУБД жизненно важны. Видимо, мы по разному с вами понимем "сложность" запросов. Я уверен, что эта ваша (весьма странная) связка приемлемо сработает только на примитивнейших по моим меркам запросах, а на сложных даст просто ужасающее по производительности решение. Впрочем, если оно вас удовлетворяет, рад за вас. Но в целом предложенный подход IMHO имеет очень узкую нишу, хотя бы потому, что все задачи нужно решать на наиболее приспособленном для этого инструменте. А для задач работы с конкретной СУБД наиболее приспособлен собственный язык этой СУБД, то есть обычно конкретный диалект SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 08:19 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
AnatoliyПопался заказчик на нашу программу, который хотел бы обойтись бесплатной СУБД (т.е. купить только интерфейсную оболочку). Ну секономить таким образом. Вот я и пробую навскидку определить, стоит ли заморачиаться. Т.е. дальше прийдется вникать в это дело более подробно. А пока не влез в тонкости, решил спросить коллег, которые работали и с тем и с тем (я имею в виду MS SQL и бесплатные СУБД). Если изначально не придерживались "голого" SQL 92 и не использовали какой-то "слой абстракции от СУБД" наподобие GLORP, TOPLink/S, Pear:DB, AdoDB, обменивающий функциональность и производительность на единообразие работы с разными СУБД - IMHO придётся переписывать и, что страшее, перетестировать почти всё. Если придерживались и использовали - переписывать чуть меньше, а тестировать несколько сложнее из-за непредсказуемости "слоя абстракции от СУБД". Вы уверены, что этот заказчик - не единственный, кому захочется FireBird, и что дело того стоит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 10:32 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
какие-то пораженьческие настроения. Полной совместимости нет. Например выбрать первые 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') - переводом в нужный формат будет заниматься драйвер, поддерживается и в одбц и в оледб, синтаксис зависит от языка разработки клиента ещё проблема может быть в отстойных бесплатных компонентах доступа. У мсскл вероятно всё пучком будет (этож микрософт) а у опенсорсного драйвера для файрбёрда этот самы биндинг может не поддерживаться к примеру. одним словом для универсальности конечно придётся какие-то дополнительные усилия прилагать. Кому-то это покажется неподъёмным, кому-то простым. По условиям решать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 11:59 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
1024Полной совместимости нет. Например выбрать первые 10 записей Расскажи, пожалуйста, как выполнить на этих серверах описанную в SQL92 конструкцию EXCEPT и сколько каких настроек для этого потребуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 13:23 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Не знаю насчет бесплатных СУБД В компании где я работал, переделывали версию проги с Оракла на MSSQL по требованию заказчика Ушло на это около 1\4 общего времени написания всей проги с нуля И ресурсов столько же ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 13:33 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
Расскажи, пожалуйста, как выполнить на этих серверах описанную в SQL92 конструкцию EXCEPT и сколько каких настроек для этого потребуется. ---------------- понятия не имею. И огромное количество разработчиков под сервера поддерживающие ексепт даже о нём и не слышали. Это так, к сведению Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 15:00 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
1024какие-то пораженьческие настроения.Да можно, можно сделать-то. Но чем сложнее система и кучерявее запросы (особенно для сложных отчетов), тем трудозатраты будут выше. Тут никаким хранением "настроек" не поможешь. Ведь сложный запрос есть не просто один большой SELECT, а по сути целый скрипт с переменными (в т.ч. таблицами-переменными), циклами, курсорами и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 15:15 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
решение принимается в соответствии с конкретными условиями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 15:21 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 15:51 |
|
||
|
Совместимость синтаксиса MS SQL, MySql, FireBird
|
|||
|---|---|---|---|
|
#18+
огромное количество разработчиков под тот-же MS SQL понятия не имеет о left/right/full/cross join, exists, distinct, begin tran.... и чо? ------------------- а то что "решение принимается в соответствии с конкретными условиями" Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2006, 16:00 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=33636064&tid=1553621]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
1ms |
| others: | 218ms |
| total: | 368ms |

| 0 / 0 |
