Приложение C libmysqlclient против ODBC - PullRequest
2 голосов
/ 30 декабря 2011

Я пишу приложение, которое должно взаимодействовать с базой данных MySQL. Должен ли я использовать libmysql или разъем ODBC? Есть ли плюсы / минусы помимо того факта, что использование ODBC позволит мне в будущем менять БД без особых изменений кода?

Ответы [ 2 ]

1 голос
/ 30 декабря 2011

Я постоянно меняю свою БД и использую разъем C, который работает безупречно и без слишком большого изменения кода.Это был лучший выбор для меня и, возможно, для вас (конечно, только IMO).

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

РЕДАКТИРОВАТЬ: Я выбрал Cразъем изначально, потому что он был интуитивно понятен и естествен для меня;и потому что я не был уверен, что существует работоспособный ODBC для Linux: мой код должен работать как под Windows, так и под Linux.Теперь я вижу, что это действительно так.Это делает ODBC более привлекательным: возможно, я бы выбрал другой, если бы знал об этом.

1 голос
/ 30 декабря 2011

На мой взгляд, это вопрос личных предпочтений.

При использовании libmysql хорошим подходом было бы сначала написать набор универсальных функций-оболочек libmysqlclient (уровень A), выше этого - набор функций, которые реализуют функции базы данных, которые вы собираетесь использовать в своей программе (уровень B) и выше вашей действительной программы (уровень C).

Переключение с libmysql на ODBC требует только незначительных изменений в уровне B без изменения API уровня B. Следовательно, если вы намереваетесь использовать вашу программу только с MySQL, я бы посоветовал вам придерживаться libmysql, пока кто-нибудь не предоставит вам патч для ODBC.


С технической стороны вы должны найти компромисс между подключением к базе данных и переносимостью. Использование libmysql позволяет вашему коду компилироваться без изменений на различных платформах, таких как Unix, MacOS и Windows. Библиотеки ODBC обычно написаны либо для Windows, либо для Unix / MacOS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...