Как получить доступ к базе данных SQL в C ++? - PullRequest
1 голос
/ 29 марта 2011

Я ищу бесплатную кроссплатформенную (Windows, Linux) библиотеку C ++ для доступа к БД сервера MS SQL.

Например, я хочу преобразовать следующий поток C # в неуправляемый C или C ++ (из здесь ):

static void Main()
{
    string connectionString = 
       ConsoleApplication746.Properties.Settings.Default.ConnectionString;
    using (SqlConnection con = new SqlConnection(connectionString))
    {
        con.Open();
        using (SqlCommand command = 
           new SqlCommand("SELECT TOP 2 * FROM Dogs1", con))
        using (SqlDataReader reader = command.ExecuteReader())
        {
            while (reader.Read())
            {
                 Console.WriteLine("{0} {1} {2}", reader.GetInt32(0),
                    reader.GetString(1), reader.GetString(2));
            }
        }
    }
}

Ответы [ 5 ]

4 голосов
/ 30 марта 2011

Попробуйте DTL или SOCI .

Редактировать: или OTL .

1 голос
/ 30 марта 2011

Доступ к серверу MS SQL из Windows не должен быть проблемой в целом. Для доступа к нему из Linux эта веб-страница может помочь вам найти способ

http://www.sommarskog.se/mssqlperl/unix.html

Поиск решения, которое работает как в Windows, так и в Linux, - это задача, которую нелегко решить, зависит от точных требований и вашей текущей архитектуры. Например, когда вам просто нужна программа на C ++, вызывающая Perl-скрипт, который работает для вас с БД, этот путь может предоставить вам бесплатное кроссплатформенное решение. Perl бесплатный и кроссплатформенный, а также модули DBI тоже.

С другой стороны, когда ваша кроссплатформенная программа на C ++ использует кроссплатформенную инфраструктуру, такую ​​как Qt, и вам требуется прямое соединение в вашей программе на C ++ с сервером SQL, ODBC может быть лучшим вариантом:

http://doc.qt.nokia.com/4.7/sql-driver.html

К сожалению, согласно информации, приведенной в моей первой ссылке, бесплатных драйверов ODBC для Linux нет, поэтому вы можете прикусить пулю и купить один.

0 голосов
/ 02 апреля 2011

Нет смысла переписывать совершенно хороший, проверенный, рабочий код.

Не делай этого. Вместо этого используйте Mono для запуска существующего кода в Unix / Linux.

0 голосов
/ 29 марта 2011

А как насчет SQLAPI ++?Работает как на Windows, так и на Linux / Unix.http://www.sqlapi.com/.

0 голосов
/ 29 марта 2011

Действительно, SQLite - это реализация БД, в которой данные хранятся в плоском файле.

Я думаю, что ODBC - это технология, которую вы ищете.

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