Я работаю над приложением с графическим интерфейсом, которое будет использоваться для «ручной оценки» больших наборов данных, созданных с помощью алгоритма ИИ.Характер оценки не важен для этого вопроса;только тот факт, что программе потребуется периодически проверять новые данные с сервера, загружать их , а затем загружать результаты , которые выдает пользователь.В этом вопросе каждый набор данных - это просто двоичный двоичный объект.
Машина, на которой будут размещаться данные, в настоящее время настроена на Microsoft SQL Server .По административным причинам мне, вероятно, придется использовать SQL Server (а не веб-сервер, работающий на той же машине) для хранения данных.Я знаю SQL и сомневаюсь, что у меня будут проблемы с изучением его версии от Microsoft.
Вот сложная часть: Программа должна работать на Mac OS X и Windows .У меня нет большого опыта разработки под Windows, и я делаю большую часть кода на Mac с использованием XCode - с помощью кросс-компилятора и виртуальной машины Windows для компиляции / тестирования версии Windows. (Тем не менее, у меня уже есть графический интерфейс, работающий в Windows, так что проблема не в этом. Код в Objective-C, но я счастлив использовать чистый C или даже C ++ для доступа к базе данных..)
Программе просто нужно подключиться к SQL Server и выполнить простые запросы .Мне бы очень хотелось, чтобы библиотека, которую я мог просто привязать к своему приложению, чтобы она могла делать свое дело - вроде как я могу с SQLite , но я бы, очевидно, передавал строку подключения, а не базу данныхимя файла.Я бы предпочел, чтобы конечный пользователь не устанавливал на свою машину ничего лишнего.Вот что я нашел до сих пор:
- Компоненты доступа к данным Microsoft 'Интерфейс ODBC - только для Windows, и последняя версия была выпущена в 2005 году, котораяменя интересует, поддерживает ли он последнюю версию SQL Server.
- iODBC - работает практически на всех устройствах, кроме Windows.
- FreeTDS - доступ к SQL Server осуществляется через собственный протокол, а не через ODBC.Утверждает, что работает на "Linux / UNIX", но мне удалось без проблем скомпилировать его на OSX.
Последние два с открытым исходным кодом.Беглый взгляд на код показывает, что FreeTDS использует BSD-сокеты для подключения к серверу (я еще не выяснил, что использует IODBC, но, вероятно, то же самое), и я не могу понять, почему любая другая часть кода будетнепереносимой.Если необходимо, я буду готов портировать код сокета FreeTDS на Winsock, если буду уверен, что не столкнусь с какими-либо другими препятствиями.
Мой вопрос:
Могу ли я получить одну из этих библиотек (или что-нибудь еще в этом отношении) для связи с версиями моего приложения для Mac и Windows моего приложения?
Если нет, то какую комбинацию библиотек лучше всего использовать для обеспечения минимальных хлопот?В любом случае, есть ли какие-либо ошибки, о которых мне нужно знать при распространении версии Windows, например, библиотеки DLL, которые нужно будет установить на компьютерах пользователей?
Обновление:
По рекомендации @ TomTom я собираюсь попробовать FreeTDS.Несмотря на то, что я первоначально думал, он компилируется в Windows, и кажется, что использование нативной реализации TDS считается лучше, чем ODBC, который, по-видимому, устарел на 10 лет.