C 언어 에서 sqlserver 데이터베이스 조작 사례 강좌

본 고 는 c 언어 를 사용 하여 sql server 데이터 베 이 스 를 조작 하고 프로그램 을 통 해 데이터 베 이 스 를 추가 삭제 하고 검사 하 는 작업 을 실현 한다.
운영 체제:windows 10        실험 플랫폼:vs 2012  +  sql server 2008
ODBC 소개:데이터베이스 연결(Open Database Connectivity,ODBC)을 엽 니 다.주요 기능 은 데이터베이스 접근 을 위 한 프로 그래 밍 인 터 페 이 스 를 제공 하 는 것 입 니 다.응용 프로그램 이 ODBC 를 데이터 원본 으로 사용 하면 이 응용 프로그램 은 사용 하 는 데이터베이스 나 데이터베이스 엔진 과 무관 하 다 는 것 이 특징 입 니 다.응용 프로그램의 크로스 플랫폼 과 이식 가능 한 기반 을 다 졌 다.
ODBC 데이터 원본 만 들 기:제어 판―관리 도구―ODBC 데이터 원본(32 비트)

여기 에는 세 가지 유형의 DSN(데이터 원본 이름)이 존재 합 니 다.그 중에서:
사용자 DSN:이 DSN 을 만 든 사용자 만 이 데이터 원본 을 사용 할 수 있 습 니 다.
시스템 DSN:이 서버 에 로그 인 한 모든 사용자 가 이 데이터 원본 을 사용 할 수 있 습 니 다.
파일 DSN:설정 정 보 를 파일 에 저장 하고 로그 인 한 모든 사용자 가 사용 할 수 있 습 니 다.
이 실험 에서 시스템 DSN 을 사용 합 니 다.
추 가 를 클릭 하고 SQL Server 를 선택 하 십시오.

그리고 데이터 원본 의 이름과 서버 를 입력 하 십시오.저희 데이터 베 이 스 는 이 컴퓨터 에 설치 되 어 있 습 니 다.

sql server 사용자 의 방식 으로 검증 할 것 을 선택 하 십시오.다음 그림 은 다음 과 같 습 니 다.

기본 연결 데이터 베 이 스 를 설정 할 수 있 습 니 다.변 하지 않 고 master 를 기본 데이터베이스 로 사용 할 수 있 습 니 다.

그리고 다음 단 계 를 클릭 하고 완성 하면 테스트 를 해 볼 수 있 습 니 다.

ODBC 데이터 원본 생 성 이 완료 되 었 습 니 다.
프로그램 테스트,데이터베이스 에 stu 라 는 것 이 포함 되 어 있 습 니 다.info 데이터베이스 에 student 의 학생 정보 표 가 있 습 니 다.필드 정 보 는 다음 과 같 습 니 다.

프로 그래 밍 은 다음 과 같다.

#include<stdio.h>
#include<windows.h>
#include<sql.h>
#include<sqlext.h>
#include<sqltypes.h>
int main()
{
	SQLRETURN ret;
	SQLHENV henv;
	SQLHDBC hdbc;
	SQLHSTMT hstmt;
 
	ret=SQLAllocHandle(SQL_HANDLE_ENV,NULL,&henv);//      
	ret=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,SQL_IS_INTEGER);
	ret=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);//         
 
	ret=SQLConnect(hdbc,(SQLCHAR*)"data_test",SQL_NTS,(SQLCHAR*)"sa",SQL_NTS,(SQLCHAR*)"12345678",SQL_NTS);
	/*data_test    ODBC     ,             */
    if(!(ret==SQL_SUCCESS || ret==SQL_SUCCESS_WITH_INFO))
	{
		printf("       !
"); return -1; } ret=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt); /* sql */ SQLCHAR sql1[]="use stu_info"; SQLCHAR sql2[]="select * from student"; ret=SQLExecDirect(hstmt,sql1,SQL_NTS); ret=SQLExecDirect(hstmt,sql2,SQL_NTS); if(ret==SQL_SUCCESS || ret==SQL_SUCCESS_WITH_INFO) { SQLCHAR str1[50],str2[50],str3[50],str4[50],str5[50],str6[50]; SQLINTEGER len_str1, len_str2, len_str3, len_str4, len_str5, len_str6; while(SQLFetch(hstmt)!=SQL_NO_DATA) { SQLGetData(hstmt,1,SQL_C_CHAR,str1,50,&len_str1); // SQLGetData(hstmt,2,SQL_C_CHAR,str2,50,&len_str2); SQLGetData(hstmt,3,SQL_C_CHAR,str3,50,&len_str3); SQLGetData(hstmt,4,SQL_C_CHAR,str4,50,&len_str4); SQLGetData(hstmt,5,SQL_C_CHAR,str5,50,&len_str5); SQLGetData(hstmt,6,SQL_C_CHAR,str6,50,&len_str6); printf("%s\t%s\t%s\t%s\t%s\t%s
",str1,str2,str3,str4,str5,str6); } } SQLFreeHandle(SQL_HANDLE_DBC,hdbc);// SQLFreeHandle(SQL_HANDLE_ENV,henv);// return 0; }
설명 이 필요 한 것 은 대부분의 환경 에서 코드 가 오 류 를 보고 할 수 있 습 니 다.오 류 를 보고 하 는 정 보 는 다음 과 같 습 니 다.(SQLCHAR*)는(SQLWCHAR*)와 호 환 되 지 않 기 때문에 직접(SQLWCHAR*)로 전환 하 는 것 을 생각 할 수 있 습 니 다.그러나 SQLConnect 함수 에서 오 류 를 보고 하여 데이터 라 이브 러 리 에 연결 할 수 없습니다.이 때 문자 집합 을 수정 하고 다 중 바이트 문자 집합 으로 설정 해 야 합 니 다.작업 은 다음 과 같 습 니 다.

C 언어 에서 sqlserver 데이터 베 이 스 를 조작 하 는 사례 튜 토리 얼 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 C 언어 로 sqlserver 를 조작 하 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 저 희 를 많이 사랑 해 주세요!

좋은 웹페이지 즐겨찾기