#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. Ubuntu连接L2TP的VPN设置

    作为程序猿,FQ查资料那是经常的事情.电信不知怎么的pptp方式连接不上.蛋疼!o(╯□╰)o没有办法自己只好折腾l2tp连接方式了\(^o^)/~ 1. 添加PPA sudo apt-add-rep ...

  2. Ajax基础详解2

    沐晴又来更新啦,话说我们上回讲到Ajax中open方法的第三个参数异步和同步的问题,今天呢,就来继续往下唠,先接着上回的代码 var oBtn = document.getElementById('b ...

  3. 拥Bootstrap入怀——模态框(modal)篇

    置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<CSS绘制Android Robot> 作者主页:myvin 博主QQ:851399101(点击QQ和 ...

  4. Scala之类型参数和对象

    泛型 类型边界 视图界定 逆变和协变 上下文界定 源代码 1.泛型 泛型用于指定方法或类可以接受任意类型参数,参数在实际使用时才被确定,泛型可以有效地增强程序的适用性, 使用泛型可以使得类或方法具有更 ...

  5. bcd 8421码

    bcd码表: 比如一个字符串 String s = "0200" 按对照表转换成二进制 02 : 0000 0010 00 : 0000 0000 s转换为字节的时候 02和00分 ...

  6. Dropbox的可用Hosts文件

    108.160.167.203 www.dropbox.com 108.160.167.203 dropbox.com 108.160.165.211 dl-client677.dropbox.com ...

  7. Object C学习笔记21-typedef用法

    在上一章的学习过程中遇到了一个关键字typedef,这个关键字是C语言中的关键字,因为Object C是C的扩展同样也是支持typedef的. 一. 基本作用 typedef是C中的关键字,它的主要作 ...

  8. Chrome的Crash Report服务

    <本文转自:http://www.cppblog.com/woaidongmao/archive/2009/10/22/99211.aspx> 本文翻译自debugInfo网站上一篇文章g ...

  9. 开课选课系统APP基本功能实现

    队员:031302511 031302505 效果图如下:        上述功能分析: 功能分析:我们考虑到手机自带的SQLite会被清理软件清理掉数据,这样就没有实际用处.所以我们就自己搭建服务器 ...

  10. 在cmd中运行带包名的java程序

    例: 在 d 盘中的 zh.java 文件,zh.java文件中有package com.fanShe.....; 则命令是  javac -d . zh.java 要在中间加入 -d . 后面运行的 ...