#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. [CareerCup] 1.3 Permutation String 字符串的排列

    1.3 Given two strings, write a method to decide if one is a permutation of the other. 这道题给定我们两个字符串,让 ...

  2. Hash中的一些概率计算

    Hash是把锋利的刀子,处理海量数据时经常用到,大家可能经常用hash,但hash的有些特点你是否想过.理解过.我们可以利用我们掌握的概率和期望的知识,来分析Hash中一些有趣的问题,比如: 平均每个 ...

  3. 集DDD,TDD,SOLID,MVVM,DI,EF,Angularjs等于一身的.NET(C#)开源可扩展电商系统–Virto Commerce

    今天一大早来看到园友分享的福利<分享一个前后端分离方案源码-前端angularjs+requirejs+dhtmlx 后端asp.net webapi>,我也来分享一个吧.以下内容由笔者写 ...

  4. 如何优雅的写一篇安利文-以Sugar ORM为例

    前言 我最近喜欢把写的十分优美的技术文章叫做安利文.首先,文章必须是原创而非软广:其次,阅读之后不仅能快速吸纳技术要点并入门开发,还能感同身受的体会作者热情洋溢的赞美和急于分享心得体验的心情,让人感觉 ...

  5. jquery设置滚动条距离页面顶部的高度

    //获取滚动条到顶部的垂直高度 $(document).scrollTop(); //获取滚动条到左边的垂直宽度 $(document).scrollLeft(); function clickFn( ...

  6. linux中的数值运算

    一.declare 作用:声明变量类型,bash默认变量为字符串类型的,并且字符串在拼接时直接拼接,不需要加号 使用方法: 二.数值运算 加法运算 a= b= c=$(($a+$b)) echo $c

  7. new-nav-css

    header:before, header:after ,.navigation:before, .navigation:after,.nav-row:before, .nav-row:after,. ...

  8. Eclipse-maven项目发布到tomcat没有附带lib拷贝

    在做web开发是,经常都要在eclipse中搭建web服务器,并将开发中的web项目部署到web服务器进行调试,在此,我选择的是tomcat服务器.之前部署web项目到tomcat进行启动调试都很正常 ...

  9. [Asp.net mvc]实体更新异常:存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。

    学习asp.net mvc 时在更新实体进行SaveChanges()的时候出现了异常,异常如下: “/”应用程序中的服务器错误. 存储区更新.插入或删除语句影响到了意外的行数(0).实体在加载后可能 ...

  10. Unix/Linux 命令技巧

    锁定一个文件夹 为了我的数据隐私,我想要锁定我文件服务器下的/downloads文件夹.因此我运行了: chmod 0000 /downloads root用户仍旧可以访问,而ls和cd命令则不工作. ...