Dela via


Ansluta till SQL Database med C och C++

Gäller för:Azure SQL Database

Det här inlägget riktar sig till C- och C++-utvecklare som försöker ansluta till Azure SQL Database. Det är uppdelat i avsnitt så att du kan gå till avsnittet som bäst fångar ditt intresse.

Förutsättningar för C/C++-självstudien

Se till att du har följande objekt:

Azure SQL Database och SQL Server på virtuella datorer

Azure SQL Database bygger på Microsoft SQL Server och är utformat för att tillhandahålla en tjänst med hög tillgänglighet, prestanda och skalbarhet. Det finns många fördelar med att använda Azure SQL i din egen databas som körs lokalt. Med Azure SQL behöver du inte installera, konfigurera, underhålla eller hantera databasen, utan bara innehållet och strukturen i databasen. Vanliga saker som vi oroar oss för med databaser som feltolerans och redundans är alla inbyggda.

Azure har för närvarande två alternativ för att hantera SQL Server-arbetsbelastningar: Azure SQL Database, databas som en tjänst och SQL-server på virtuella datorer (VM). Vi kommer inte att gå in närmare på skillnaderna mellan dessa två förutom att Azure SQL Database är det bästa valet för nya molnbaserade program att dra nytta av de kostnadsbesparingar och prestandaoptimering som molntjänster tillhandahåller. Om du överväger att migrera eller utöka dina lokala program till molnet kan SQL-servern på den virtuella Azure-datorn fungera bättre för dig. För att hålla det enkelt för den här artikeln ska vi skapa en Azure SQL Database.

Dataåtkomsttekniker: ODBC och OLE DB

Att ansluta till Azure SQL Database skiljer sig inte och det finns för närvarande två sätt att ansluta till databaser: ODBC (Open Database-anslutning) och OLE DB (objektlänkning och inbäddningsdatabas). Under de senaste åren har Microsoft anpassat sig till ODBC för intern relationsdataåtkomst. ODBC är relativt enkelt och mycket snabbare än OLE DB. Den enda varning här är att ODBC använder ett gammalt API i C-stil.

Steg 1: Skapa din Azure SQL Database

Se komma igång-sidan för att lära dig hur du skapar en exempeldatabas. Du kan också följa den här korta videon på två minuter för att skapa en Azure SQL Database med hjälp av Azure-portalen.

Steg 2: Hämta anslutningssträng

När azure SQL Database har etablerats måste du utföra följande steg för att fastställa anslutningsinformation och lägga till klient-IP-adressen för brandväggsåtkomst.

till azure SQL Database ODBC-anslutningssträngen i Azure-portalen med hjälp av visa databasanslutningssträngar som anges som en del av översiktsavsnittet för din databas:

ODBCConnectionString

ODBCConnectionStringProps

Kopiera innehållet i ODBC-strängen (Inkluderar Node.js) [SQL-autentisering]. Vi använder den här strängen senare för att ansluta från vår C++ ODBC-kommandoradstolk. Den här strängen innehåller information som drivrutins-, server- och andra databasanslutningsparametrar.

Steg 3: Lägg till din IP-adress i brandväggen

Gå till brandväggsavsnittet för servern och lägg till klient-IP-adressen i brandväggen med hjälp av dessa steg för att se till att vi kan upprätta en lyckad anslutning:

AddyourIPWindow

Nu har du konfigurerat din Azure SQL Database och är redo att ansluta från C++-koden.

Steg 4: Ansluta från ett Windows C/C++-program

Du kan enkelt ansluta till din Azure SQL Database med HJÄLP av ODBC i Windows med hjälp av det här exemplet som skapas med Visual Studio. Exemplet implementerar en ODBC-kommandoradstolk som kan användas för att ansluta till vår Azure SQL Database. Det här exemplet tar antingen en DSN-fil (Database Source Name File) som kommandoradsargument eller den utförliga anslutningssträng som vi kopierade tidigare från Azure-portalen. Ta upp egenskapssidan för det här projektet och klistra in anslutningssträngen som ett kommandoargument som visas här:

DSN Propsfile

Se till att du anger rätt autentiseringsinformation för databasen som en del av databasanslutningssträngen.

Starta programmet för att skapa det. Du bör se följande fönster som verifierar en lyckad anslutning. Du kan till och med köra några grundläggande SQL-kommandon som skapa en tabell för att verifiera databasanslutningen:

SQL Commands

Du kan också skapa en DSN-fil med hjälp av guiden som startas när inga kommandoargument anges. Vi rekommenderar att du även provar det här alternativet. Du kan använda den här DSN-filen för automatisering och skydda dina autentiseringsinställningar:

Create DSN File

Klart! Nu har du anslutit till Azure SQL med C++ och ODBC i Windows. Du kan fortsätta läsa för att göra samma sak för Linux-plattformen också.

Steg 5: Ansluta från ett Linux C/C++-program

Om du inte har hört nyheterna ännu kan du nu även utveckla C++ Linux-program i Visual Studio. Du kan läsa om det här nya scenariot i bloggen Visual C++ for Linux Development . För att skapa för Linux behöver du en fjärrdator där Linux-distributionen körs. Om du inte har någon tillgänglig kan du konfigurera en snabbt med hjälp av Virtuella Linux-datorer i Azure.

I den här självstudien antar vi att du har konfigurerat en Ubuntu 16.04 Linux-distribution. Stegen här bör även gälla Ubuntu 15.10, Red Hat 6 och Red Hat 7.

Följande steg installerar de bibliotek som behövs för SQL och ODBC för distributionen:

    sudo su
    sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/mssql-ubuntu-test/ xenial main" > /etc/apt/sources.list.d/mssqlpreview.list'
    sudo apt-key adv --keyserver apt-mo.trafficmanager.net --recv-keys 417A0893
    apt-get update
    apt-get install msodbcsql
    apt-get install unixodbc-dev-utf16 #this step is optional but recommended*

Starta Visual Studio. Under Verktyg –> Alternativ –> Plattformsoberoende –> Anslutningshanteraren lägger du till en anslutning till Din Linux-ruta:

Tools Options

När anslutningen över SSH har upprättats skapar du en Tom projektmall (Linux):

New project template

Du kan sedan lägga till en ny C-källfil och ersätta den med det här innehållet. Med hjälp av ODBC-API:erna SQLAllocHandle, SQLSetConnectAttr och SQLDriverConnect bör du kunna initiera och upprätta en anslutning till databasen. Precis som med Windows ODBC-exemplet måste du ersätta SQLDriverConnect-anropet med informationen från databasanslutningssträngsparametrarna som kopierades från Azure-portalen tidigare.

     retcode = SQLDriverConnect(
        hdbc, NULL, "Driver=ODBC Driver 13 for SQL"
                    "Server;Server=<yourserver>;Uid=<yourusername>;Pwd=<"
                    "yourpassword>;database=<yourdatabase>",
        SQL_NTS, outstr, sizeof(outstr), &outstrlen, SQL_DRIVER_NOPROMPT);

Det sista du behöver göra innan du kompilerar är att lägga till odbc som ett biblioteksberoende:

Adding ODBC as an input library

Starta programmet genom att öppna Linux-konsolen från felsökningsmenyn:

Linux Console

Om anslutningen lyckades bör du nu se det aktuella databasnamnet som skrivs ut i Linux-konsolen:

Linux Console Window Output

Klart! Du har slutfört självstudien och kan nu ansluta till din Azure SQL Database från C++ på Windows- och Linux-plattformar.

Hämta den fullständiga C/C++-självstudielösningen

Du hittar lösningen GetStarted som innehåller alla exempel i den här artikeln på GitHub:

Nästa steg

Ytterligare resurser