分享一下数据库课设中我负责的模块
数据库连接通用模板ODBC
void init() //连接数据库
{
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*)"数据库名",SQL_NTS,(SQLCHAR*)"登录名",SQL_NTS,(SQLCHAR*)"登录密码",SQL_NTS);
}
void check() //查询电影信息
{
ret = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
SQLCHAR sql2[] = "select * from Movie";
//ret = SQLExecDirect(hstmt, sql1, SQL_NTS);
ret = SQLExecDirect(hstmt, sql2, SQL_NTS);
if (ret == SQL_SUCCESS || ret == SQL_SUCCESS_WITH_INFO)
{
char str1[12], str2[4], str3[10], str4[10], str5[50], str6[50],str7[5];
SQLLEN len_str1, len_str2, len_str3, len_str4, len_str5, len_str6,len_str7;
int lon = 50;
//std::cout << "sds";
/*SQLFetch函数的功能是将结果集的当前记录指针移至下一个记录;*/
while (SQLFetch(hstmt) != SQL_NO_DATA)
{
//std::cout << "sds";
/*SQLGetData函数的功能是提取结果集中当前记录的某个字段值*/
SQLGetData(hstmt, 1, SQL_C_CHAR, str1, sizeof(str1), &len_str1); //获取第一列数据
SQLGetData(hstmt, 2, SQL_C_CHAR, str2, sizeof(str2), &len_str2);
SQLGetData(hstmt, 3, SQL_C_CHAR, str3, sizeof(str3), &len_str3);
SQLGetData(hstmt, 4, SQL_C_CHAR, str4, sizeof(str4), &len_str4);
SQLGetData(hstmt, 5, SQL_C_CHAR, str5, sizeof(str5), &len_str5);
SQLGetData(hstmt, 6, SQL_C_CHAR, str6, sizeof(str6), &len_str6);
SQLGetData(hstmt, 7, SQL_C_CHAR, str7, sizeof(str7), &len_str7);
//settextcolor(BLACK);
//char x[] = "hello world";
//printf(" %s \t %s \t %s \t %s \t %s \t %s\t %s \n", str1, str2, str3, str4, str5, str6,str7);
//str1 = "fkwdoeudhADE";
outtextxy(100