您的位置:首页 > 编程语言 > C语言/C++

C语言异常处理和连接数据库

2013-07-27 16:19 671 查看
#include <stdio.h>
#include <setjmp.h>

jmp_buf j;

void Exception(void);
double diva(double num1,double num2);

int main()
{
double a = 0, b = 0, result = 0;

printf("请输入第一个数字:");

scanf("%lf",&a);

printf("请输入第二个数字:");

if(setjmp(j) == 0)
{
scanf("%lf",&b);

if(0 == b)
{
Exception();
}
result = diva(a, b);

printf("相除的结果是: %.2lf\n",result);
}
else
{
printf("试图除以一个为0的数字\n");
}
system("pause");
return 0;
}

void Exception(void)
{
longjmp(j, 1);
}
double diva(double num1,double num2)         //两数相除函数
{
double re;

re=num1/num2;

return re;
}


  C语言通过ODBC连接SQLSERVER数据库操作

/*****************************************************
Function:
Description:
Input:
Return:
Author:
Date:
*****************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <sql.h>               // 包含有基本的ODBC API的定义
#include <sqlext.h>            // 包含有扩展的ODBC的定义
#include <sqltypes.h>
#include <time.h>

int main()
{
void  *hdbc1 = NULL;  //语句句柄
HENV  henv = NULL;
clock_t start_time = 0, end_time = 0;
double time = 0;

/////////////////////////////////////////////////////////////
////////注意:所有未释放动态申请内存在初始化参数后释放///////
/////////////////////////////////////////////////////////////

// 用户名和密码
RETCODE   retcode;
char szDSN[] = "John";   //必须是一个合法的DSN Name,数据源名
char szUID[] = "sa";           //用户名
char szAuthStr[] = "1234";     //用户密码

//申请环境句柄和连接句柄
while(1)
{
//申请环境句柄
start_time = clock();

/* 此函数组合了函数 SQLAllocEnv()、SQLAllocConnect() 和 SQLAllocStmt()*/
retcode  = SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);

/*创建环境句柄后务必要调用这个函数*/
retcode  = SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION,
(SQLPOINTER)SQL_OV_ODBC3, SQL_IS_INTEGER);

/*申请数据库连接句柄*/
retcode  =  SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc1);

/*连接ODBC数据源,并返回连接句柄*/
retcode = SQLConnect(hdbc1, (SQLCHAR *)szDSN,(SWORD)strlen(szDSN),(SQLCHAR *)szUID,
(SWORD)strlen(szUID),(SQLCHAR *)szAuthStr,(SWORD)strlen(szAuthStr));

if((retcode != SQL_SUCCESS)&&(retcode != SQL_SUCCESS_WITH_INFO))
{
printf("Connection   Error\n");
}
else
{
printf("Connection   Successfully\n");

}
SQLDisconnect(hdbc1);                   /* 断开连接ODBC数据源*/
SQLFreeHandle(SQL_HANDLE_DBC, hdbc1);  /*释放语句句柄*/
SQLFreeHandle(SQL_HANDLE_ENV, henv);   /*释放环境句柄*/

end_time = clock();
time = (double)(end_time-start_time)/CLOCKS_PER_SEC;
printf("总共耗时%.2f s\n", time);

}

system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐