다음을 통해 공유


C 및 C++를 사용하여 SQL Database에 연결

적용 대상: Azure SQL Database

이 문서는 C 및 C++ 개발자가 Azure SQL 데이터베이스에 연결하는 데 도움이 됩니다.

필수 조건

이 가이드의 단계를 완료하려면 다음이 필요합니다.

  • 활성 Azure 계정. 아직 구독하지 않은 경우 Azure 무료 평가판에 등록할 수 있습니다.
  • Visual Studio. 이 샘플을 빌드하고 실행하려면 C++ 언어 구성 요소를 설치해야 합니다.
  • Visual Studio Linux 개발. Linux에서 개발하는 경우 Visual Studio Linux 확장도 설치해야 합니다.

데이터 액세스 기술: ODBC 및 OLE DB

현재 ODBC(Open Database Connectivity) 및 OLE DB(Object Linking and Embedding Database)의 두 가지 방법으로 Azure SQL 데이터베이스에 연결할 수 있습니다. 최근 몇 년 동안 Microsoft는 네이티브 관계형 데이터 액세스용 ODBC와 일치했습니다. ODBC는 OLE DB보다 훨씬 빠릅니다. 여기서 유일한 주의 사항은 ODBC가 이전 C 스타일 API를 사용한다는 것입니다.

Azure SQL Database 만들기

샘플 데이터베이스를 만드는 방법을 알아보려면 시작 페이지를 참조하세요. 또는 짧은 2분 비디오를 보고 Azure Portal을 사용하여 Azure SQL 데이터베이스를 만듭니다.

연결 문자열 가져오기

Azure SQL Database를 프로비저닝한 후 연결 정보를 확인하고 방화벽 액세스에 대한 클라이언트 IP를 추가하려면 다음 단계를 수행해야 합니다.

Azure Portal에서 데이터베이스에 대한 개요 섹션의 일부로 나열된 데이터베이스 연결 문자열 표시를 사용하여 Azure SQL 데이터베이스 ODBC 연결 문자열로 이동합니다.

ODBCConnectionString

ODBCConnectionStringProps

ODBC(Node.js 포함) [SQL 인증] 문자열의 내용을 복사합니다. 나중에 이 문자열을 사용하여 C++ ODBC 명령줄 인터프리터에서 연결합니다. 문자열은 드라이버, 서버 및 다른 데이터베이스 연결 매개 변수와 같은 세부 정보를 제공합니다.

방화벽에 IP 추가

서버의 방화벽 섹션으로 이동하고 관련 단계에 따라 방화벽에 클라이언트 IP를 추가하여 다음과 같이 연결을 설정합니다.

AddyourIPWindow

이 시점에서 Azure SQL Database를 구성했으며 C++ 코드에서 연결할 준비가 된 것입니다.

Windows C/C++ 애플리케이션에서 연결

Visual Studio에서 빌드하는 이 샘플을 사용하는 Windows에서 ODBC를 사용하여 Azure SQL 데이터베이스에 쉽게 연결할 수 있습니다. 이 샘플은 Azure SQL Database에 연결하는 데 사용할 수 있는 ODBC 명령줄 인터프리터를 구현합니다. 이 샘플에서는 DSN(데이터베이스 원본 이름 파일) 파일을 명령줄 인수로 사용하거나 Azure Portal에서 이전에 복사한 자세한 정보 연결 문자열 사용합니다. 이 프로젝트의 속성 페이지를 가져오고 다음과 같이 연결 문자열 명령 인수로 붙여넣습니다.

DSN Propsfile

해당 데이터베이스에 그 데이터베이스 연결 문자열로 올바른 인증을 해야 합니다.

응용 프로그램을 실행하여 빌드합니다. 성공적인 연결의 유효성을 검사하는 다음 창이 표시됩니다. 테이블 만들기와 같은 몇 가지 기본 SQL 명령을 실행하여 데이터베이스 연결의 유효성을 검사할 수도 있습니다.

SQL 명령

또는 명령 인수가 제공되지 않을 때 시작되는 마법사를 사용하여 DSN 파일을 만들 수 있습니다. 이 옵션을 사용하는 것이 좋습니다. 자동화 및 인증 설정을 보호하기 위해 이 DSN 파일을 사용할 수 있습니다.

파일 DSN 만들기

축하합니다! 이제 Windows에서 C++ 및 ODBC를 사용하여 Azure SQL에 성공적으로 연결했습니다. Linux 플랫폼에서도 동일한 작업을 수행하도록 계속 읽을 수 있습니다.

Linux C/C++ 애플리케이션에서 연결

Visual Studio에서 C++ Linux 애플리케이션을 개발할 수 있습니다. 자세한 내용은 Linux 개발용 Visual C++ 블로그를 검토하세요.

Linux용으로 빌드하려면 Linux distro가 실행되고 있는 원격 컴퓨터가 필요합니다. 사용할 수 있는 머신이 없는 경우 Linux Azure Virtual Machines를 사용하여 빠르게 설정할 수 있습니다.

이 가이드에서는 Ubuntu 16.04 Linux 배포판이 설치되어 있다고 가정합니다. 이 단계는 Ubuntu 15.10, Red Hat 6 및 Red Hat 7에도 적용됩니다.

다음 단계에서는 배포판에 SQL 및 ODBC에 필요한 라이브러리를 설치합니다.

    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*

Visual Studio를 시작합니다. 도구 -> 옵션 -> 플랫폼 간 -> 연결 관리자에서 Linux 상자에 연결을 추가합니다.

도구 옵션

SSH를 통해 연결이 설정되면 빈 프로젝트(Linux) 템플릿을 만듭니다.

새 프로젝트 템플릿

그런 다음 새 C 소스 파일을 추가하고 다음 내용으로 교체할 수 있습니다. ODBC API SQLAllocHandle, SQLSet커넥트Attr 및 SQLDriver커넥트 사용하여 데이터베이스에 대한 연결을 초기화하고 설정할 수 있어야 합니다. Windows ODBC 샘플과 마찬가지로 SQLDriver커넥트 호출을 이전에 Azure Portal에서 복사한 데이터베이스 연결 문자열 매개 변수의 세부 정보로 바꿔야 합니다.

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

컴파일하기 전에 수행할 마지막 작업은 odbc를 라이브러리 종속성으로 추가하는 것입니다.

입력 라이브러리로 ODBC 추가

애플리케이션을 시작하려면 디버그 메뉴에서 Linux 콘솔을 표시합니다.

Linux 콘솔

연결에 성공한 경우 이제 Linux 콘솔에 현재 데이터베이스 이름이 인쇄되어 표시됩니다.

Linux 콘솔 창 출력

축하합니다! 가이드를 성공적으로 완료했으며 이제 Windows 및 Linux 플랫폼의 C++에서 Azure SQL 데이터베이스에 연결할 수 있습니다.

전체 C/C++ 자습서 솔루션 가져오기

GitHub에서 이 문서의 모든 샘플을 포함하는 GetStarted 솔루션을 찾을 수 있습니다.