Как получить доступ к SQL Server из Какао (Mac OS X)? - PullRequest
3 голосов
/ 09 февраля 2009

Как говорится в вопросе:
Как получить доступ к Microsoft SQL Server 2005 из Какао в Mac OS X 10.5?
Драйвер базы данных должен быть свободен, если возможно, платные решения тоже могут быть в порядке.

Ответы [ 4 ]

3 голосов
/ 01 марта 2009

Если вы используете ODBC, Actual Technologies делает драйвер Microsoft SQL Server для OS X:

http://www.actualtechnologies.com/product_sqlserver.php

2 голосов
/ 09 февраля 2009

Какой-то Гугл предлагает этот вопрос:

http://lists.apple.com/archives/Cocoa-dev/2004/Jul/msg00077.html

Что указывает на эти два приложения:

Они отвечают вашим потребностям? Если нет, можете ли вы уточнить этот вопрос? Спасибо!

0 голосов
/ 25 февраля 2019

Комментируя это, потому что это один из лучших результатов поиска Google для добавления подключения SQL Server к приложению Какао (MacOS), но я не вижу ни одного текущего решения в списке.

FreeTDS - как предположил Дэниел, это самый быстрый / самый простой способ, но некоторая информация о том, как это сделать без использования страшного Java-моста или какого-либо взлома Python. Создайте FreeTDS с помощью Homebrew (не ради бога, попробуйте собрать его на Mac самостоятельно), затем выберите свой проект в Xcode finder, выберите вкладку «фазы сборки», затем в разделе «связать двоичные файлы с библиотеками» свяжите библиотеку FreeTDS libsybdb (используйте динамический или статический). нажмите на знак «+», затем выберите «добавить другие», затем перейдите туда, где находятся библиотеки - для меня каталог, в который были установлены библиотеки, был

/ USR / местные / Подвал / FreeTDS / 1.00.109 / Библиотека

затем выберите (например) libsybdb.a в этом каталоге

Затем вы можете использовать FreeTDS API или использовать обертку, такую ​​как , автором которой является Мартин Рыбак , что я и сделал (я использую старую версию этого кода "SQLClient"). Он работает довольно просто для экземпляра SQL Server в AWS и, как и ожидалось, немного сложнее для экземпляра Azure AWS - мне нужно было взломать оболочку, поскольку код оболочки выдает команду «use db» для azure после входа в систему, которую Azure не примет - для лазури база данных должна быть установлена ​​во время соединения - вместо этого я добавил (используя более новый код из GitHub):

DBSETLDBNAME(_login, [host UTF8String]);

в файле SQLClient.m, который я добавил в раздел:

DBSETLUSER(_login, [username UTF8String]);
DBSETLPWD(_login, _password);
DBSETLHOST(_login, [host UTF8String]);
DBSETLCHARSET(_login, [self.charset UTF8String]);

и я прокомментировал:

    if (database) {
        _returnCode = dbuse(_connection, [database UTF8String]);
        if (_returnCode == FAIL) {
            [self connectionFailure:completion];
            return;
        }
    }

Мое приложение основано на swift, поэтому я использую соединительный заголовок, добавляя к нему:

#import SQLClient.h

Чтобы использовать lib, что-то вроде (псевдокод, так как я сейчас не перед своим кодом):

let client = SQLClient.sharedInstance()
//I'm using the older code which uses a delegate and not notifications callback 
self.client!.delegate = self
self.client!.connect("database_network_address", username: "username", password: "password", database: "database_name", completion: { (success) -> Void in
         if(success) {
                    print ("connection has succeeded")
// now do something with the connection
                    self.client!.execute("select * from table_name", completion: { (data) -> Void in
    //... do something with the returned array "data" per the wrapper API
    })
        } else {
        print ("connection has NOT been success")
      }
   })

Дайте мне знать, если у вас есть вопросы по этому поводу. Это абсолютно работает для приложения Какао, я использую мое приложение для загрузки тонны данных в экземпляр Azure SQL Server. Удачи!

0 голосов
/ 11 февраля 2009

FreeTDS довольно хорош и довольно прост в использовании из Objective-C, поскольку у него есть C API. Однако еще более простой способ - использовать драйвер jTDS JDBC через мост Java. Я знаю, что Apple больше не рекомендует использовать Java-мост, но это, вероятно, самый простой способ общения с SQL Server, и если вы структурируете код, то, в сущности, кодируете практически любую другую базу данных на планете.

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