C 언어 에서 sqlserver 데이터베이스 조작 사례 강좌
운영 체제: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 를 조작 하 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 저 희 를 많이 사랑 해 주세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.