Необходимо из C++ кода получить доступ к MySQL.
Причем задача достаточно временная и предполагается, что
в близком будущем (2-3 мес.) будет произведена замена
MySQL на Oracle.Хотелось бы узнать мнение опытных людей, что оптимальнее:
1. C++->OBDC ->MySQL
2. C++->-Perl->DBI->MySQL
Причем, есть большой опыт просто C++ и
Perl->DBI->MySQL, и нет опыта C++->OBDC ->MySQL,
но во втором варианте есть лишний уровень.Есть следующие вопросы:
Легко и хорошо ли работать через С++->ODBC на Unix ?
Сколько времени займет освоение ODBC по сравнению Perl->DBI->MySQL ?
Может быть есть более легкий третий вариант ?
C ORACLE проще всего через OCI. Руку только набьешь - и просто сказка. Работаю из солярки ( на сантехнике ) уже несколько лет.
>C ORACLE проще всего через OCI.
>Руку только набьешь - и
>просто сказка. Работаю из солярки
>( на сантехнике ) уже
>несколько лет.Вся фича в том, что СЕЙЧАС надо на MySQL,
а ПОТОМ надо перенести на ORACLE,
причем с наименьшим числом телодвижений
>>C ORACLE проще всего через OCI.
>>Руку только набьешь - и
>>просто сказка. Работаю из солярки
>>( на сантехнике ) уже
>>несколько лет.
>
>Вся фича в том, что СЕЙЧАС
>надо на MySQL,
>а ПОТОМ надо перенести на ORACLE,
>
>причем с наименьшим числом телодвиженийраз так, пиши свои wrapеры...
типа:Connect2SQL ()
PerformQuery ()и пр.
На вопрос "где, чего и как обворачивать дабы потом меньше телом двигать?", ответ можно получить
из док/сорцов или от пиплов имеющих отношение к соответствующим SQL. Еще подумать придется. "Опыт, сын ошибок трудных" и пр. се ля ви ;)
Лично я пользую пакет unixODBC, там есть некоторый гемморой с настройкой драйверов/ДСНов на MySQL, но разобраться с этим легче, чем переписывать суриозную прогу ;) Есть еще тонкость, что при запросе к MySQL через ODBC на несуществующий столбец unixODBC segfaulтит... Это практически все проблемы (да и проблемами их назвать трудно)... Зато потом сказка - сменил имя DSNа в настройке проги, и все на этом... У меня работают демоны с достаточно серьезной нагрузкой (к примеру Cisco NetFlow демон со сливом в MySQL) и разницы между native API и unixODBC API я не вижу...