mfc mysql 예제

mfc mysql 예제

이 예제에서 con은 연결 형식의 개체에 대한 참조입니다. 커넥터/C++는 MySQL C API 및 C 라이브러리 libmysql을 기반으로 합니다. 따라서 MySQL 서버와 MySQL C API의 모든 제한 을 상속합니다. 다음 문은 커넥터/C++: 호출, 테이블 만들기, 삭제, DO, 삽입, 바꾸기, 선택, 집합, 업데이트 및 SHOW 명령문의 대부분을 사용하여 준비된 명령문으로 사용할 수 있습니다. USE는 준비된 문 프로토콜에서 지원되지 않으며 커넥터/C++에는 USE 문에 대해 준비된 문 에뮬레이션이 포함되지 않습니다. MySQL C API 준비 문 설명서에서 준비할 수 있는 명령문의 전체 목록을 확인하십시오. UNIX 도메인 소켓을 사용하여 로컬 호스트에서 실행 중인 MySQL 서버에 연결하려면 데이터베이스 연결 URL에 대해 “unix://path/to/unix_socket_file”를 지정합니다. 예를 들어, unix:///tmp/mysql.sock. 옵션 이름에 대한 문자열 “libmysql_debug”는 MySQL 클라이언트 라이브러리의 디버그 버전의 경우 디버그 추적을 가능하게 하며, 여기서 문자열 “clientTrace”는 커넥터/C++ 드라이버에 의한 내부 추적의 경우 디버그 추적을 가능하게 합니다. 커넥터 드라이버는 이 디버그 추적을 활성화하기 위해 C-API 함수mysql_debug를 암시적으로 호출합니다.

MySQL 클라이언트 라이브러리의 디버그 버전만 디버그 추적을 생성할 수 있습니다. 따라서 추적 기능을 사용하려면 커넥터/C++ 드라이버를 MySQL 클라이언트 라이브러리의 디버그 버전에 연결합니다. -DMYSQLCPPCONN_TRACE_ENABLE:BOOL=1 CMake 옵션을 사용하여 드라이버를 빌드하거나 런타임에서 환경 변수인 MYSQLCPPCONN_TRACE_ENABLED를 설정하여 이 추적을 생성할 필요는 없습니다. 추적은 아래와 같이 내부 함수 호출및 내부 개체의 주소를 표시합니다. 이 자습서에서는 MySQL 데이터베이스에서 데이터를 연결, 삽입 및 검색하는 간단한 예제와 함께 MySQL 커넥터/C++ 드라이버를 빌드하고 설치하는 데 필수적인 단계를 보여 줄 것입니다. 이 문서에서는 C++ 응용 프로그램의 데이터베이스 연결에 중점을 두므로 일부 종류의 MySQL 데이터베이스가 이미 클라이언트 컴퓨터에서 액세스 가능한 것으로 가정합니다. 이 인터페이스의 사용자는 일반적으로 기본 데이터베이스 관리 시스템(DBMS)을 처리하는 방법을 검색해야 하는 도구입니다. 이는 둘 이상의 DBMS와 함께 사용하려는 응용 프로그램의 경우 특히 그렇습니다. 예를 들어 도구는 getTypeInfo()를 사용하여 CREATE TABLE 문에서 사용할 수 있는 데이터 형식을 찾을 수 있습니다. 사용자는 지원 호출할 수 있습니다CorrelatedSubquery() 및 supportsBatchUpdates() 상관 된 하위 쿼리를 사용할 수 있는지 확인 하 고 일괄 처리 업데이트가 허용 되는지 확인 합니다. 환경 변수를 사용하여 디버그 추적을 제어하는 것은 간단하며 응용 프로그램에서 코드 계측이 필요하지 않습니다.

응용 프로그램에서 모든 드라이버 특정 함수 호출에 대한 추적을 생성합니다. 그러나 생성할 추적에 대한 연결 디버그 트레이스 또는 세분화된 제어를 원하는 경우 Connection::setClientOptions 메서드를 사용하여 코드를 계측하는 것이 좋습니다. 예를 들어, 드라이버 지원 함수가 응용 프로그램에서 호출될 때 드라이버 내부에서 일어나는 일을 확인하려면 응용 프로그램에서 setClientOptions() 를 두 번 호출하여 드라이버를 특정 호출하기 전에 클라이언트 추적을 활성화합니다. 두 번째 호출은 함수를 호출한 직후 클라이언트 추적을 사용하지 않도록 설정하는 것입니다. 위의 모든 메서드는 SQLException을 throw하므로 코드에서 이러한 예외를 catch하십시오. 간단히 하기 위해 예제의 코드 조각은 try .에 의해 포위되지 않습니다. 캐치 블록. 데이터베이스에 새 레코드를 삽입하려는 경우 다음 예제와 같이 executeUpdate 메서드를 사용하여 ::: 표기법이 위 단락에서 완전히 정규화된 메서드 이름을 표시하는 데 사용되었습니다.

예를 들어 sql::Driver::get_driver_instance() sql은 네임스페이스이고 드라이버는 클래스 이름이며 get_driver_instance()는 메서드의 이름입니다.