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:
- Ett aktivt Azure-konto. Om du inte har ett kan du registrera dig för en kostnadsfri utvärderingsversion av Azure.
- Visual Studio. Du måste installera C++-språkkomponenterna för att skapa och köra det här exemplet.
- Visual Studio Linux Development. Om du utvecklar på Linux måste du även installera Visual Studio Linux-tillägget.
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.
Gå 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:
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:
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:
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:
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:
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:
När anslutningen över SSH har upprättats skapar du en Tom projektmall (Linux):
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:
Starta programmet genom att öppna Linux-konsolen från felsökningsmenyn:
Om anslutningen lyckades bör du nu se det aktuella databasnamnet som skrivs ut i Linux-konsolen:
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:
- ODBC C++ Windows-exempel, Ladda ned Windows C++ ODBC-exemplet för att ansluta till Azure SQL
- ODBC C++ Linux-exempel, Ladda ned Linux C++ ODBC-exemplet för att ansluta till Azure SQL
Nästa steg
- Granska översikten över SQL Database-utveckling
- Mer information om ODBC API-referensen