#include <stdio.h>
#include <setjmp.h> jmp_buf j; void Exception(void);
double diva(double num1,double num2); int main()
{
double a = , b = , result = ; printf("请输入第一个数字:"); scanf("%lf",&a); printf("请输入第二个数字:"); if(setjmp(j) == )
{
scanf("%lf",&b); if( == b)
{
Exception();
}
result = diva(a, b); printf("相除的结果是: %.2lf\n",result);
}
else
{
printf("试图除以一个为0的数字\n");
}
system("pause");
return ;
} void Exception(void)
{
longjmp(j, );
}
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 = , end_time = ;
double time = ; /////////////////////////////////////////////////////////////
////////注意:所有未释放动态申请内存在初始化参数后释放///////
///////////////////////////////////////////////////////////// // 用户名和密码
RETCODE retcode;
char szDSN[] = "John"; //必须是一个合法的DSN Name,数据源名
char szUID[] = "sa"; //用户名
char szAuthStr[] = ""; //用户密码 //申请环境句柄和连接句柄
while()
{
//申请环境句柄
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 ;
}

C语言异常处理和连接数据库的更多相关文章

  1. 第63课 C语言异常处理

    1. 异常的概念 (1)程序在运行过程中可能产生异常 (2)异常(Exception)与Bug的区别 ①异常是程序运行时可预料的执行分支 ②Bug是程序是的错误,是不被预期的运行方式 2. 异常和Bu ...

  2. go语言异常处理

    go语言异常处理 error接口 go语言引入了一个关于错误错里的标准模式,即error接口,该接口的定义如下: type error interface{ Error() string } 对于要返 ...

  3. Go语言异常处理defer\panic\recover

    Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱.因为开发者很容易滥用异常, ...

  4. c语言异常处理机制

    异常处理机制:setjmp()函数与longjmp()函数 C标准库提供两个特殊的函数:setjmp() 及 longjmp(),这两个函数是结构化异常的基础,正是利用这两个函数的特性来实现异常. 所 ...

  5. C语言异常处理之 setjmp()和longjmp()

    异常处理之除0情况 相信大家处理除0时,都会通过函数,然后判断除数是否为0,代码如下所示: double divide(doublea,double b) { const double delta = ...

  6. C语言异常处理编程的三个境界

    http://blog.csdn.net/treefish2012/article/details/17466487 这是上一次看完Herb Sutter的<Exceptional C++> ...

  7. C语言异常处理

    异常的概念-程序在运行过程中可能产生异常-异常(Exception)与Bug的区别 异常是程序运行时可预料的执行分支 Bug是程序中的错误,是不被预期的运行方式 异常(Exception)和Bug的对 ...

  8. GO语言异常处理03---自定义异常

    package main import ( "fmt" "time" ) /* type error interface { Error() string } ...

  9. GO语言异常处理02---返回错误

    package main import ( "errors" "fmt" "math" ) /*计算圆面积,同时返回[结果-错误对]*/ f ...

随机推荐

  1. 20145208实验一 Java开发环境的熟悉

    20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ...

  2. 20145222黄亚奇《Java程序设计》实验四实验报告

    20145222<Java程序设计>第四次实验报告 实验四 Android环境搭建 实验内容 1.搭建Android环境 2.运行Android 3.修改代码,能输出学号 实验步骤 搭建A ...

  3. Windows Phone8 中如何引用 SQLite 数据库2

    本博文编写环境 VS2013 + WP8 SDK 上篇介绍完了SQLite在wp中的部署(具体请参阅 Windows Phone8 中如何引用 SQLite 数据库),下面来看如何使用 SQLite ...

  4. 字符串去掉空格 trim()方法

    jquery库提供了$.trim()方法,能直接用, 但没用库时FF里有效果,IE里就没实现, 解决办法:用正则替换 方法: function trimStr(str){return str.repl ...

  5. jqurey 遍历 div内的所有input单选复选按钮并判断是否选中及Attr(checked)无效的解决

    关于页面前面标签 <ul> @{ foreach (var item in vote) { if (!string.IsNullOrEmpty(item.Img)) { <li cl ...

  6. 第三章:Javascript类型、值和变量。

    计算机程序的运行需要对值(value)比如数字3.14或者文本"hello world"进行操作,在编程语言中,能够表示并操作的值的类型叫做数据类型(type),编程语言最基本的特 ...

  7. 每天一个linux命令(40):watch命令

    watch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行.在Linux下,watch是周期性的执行下个 ...

  8. HDU 1171 Big Event in HDU 多重背包二进制优化

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1171 Big Event in HDU Time Limit: 10000/5000 MS (Jav ...

  9. 在windows 下使用git

    首先安装好在windows下的linux模拟交互器 这里我选择的是cygwin 这里我是参考:http://book.51cto.com/art/201107/278731.htm 这里还要注意我这里 ...

  10. 百分比定位加position定位的常用布局

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...