C语言异常处理和连接数据库
#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语言异常处理和连接数据库的更多相关文章
- 第63课 C语言异常处理
1. 异常的概念 (1)程序在运行过程中可能产生异常 (2)异常(Exception)与Bug的区别 ①异常是程序运行时可预料的执行分支 ②Bug是程序是的错误,是不被预期的运行方式 2. 异常和Bu ...
- go语言异常处理
go语言异常处理 error接口 go语言引入了一个关于错误错里的标准模式,即error接口,该接口的定义如下: type error interface{ Error() string } 对于要返 ...
- Go语言异常处理defer\panic\recover
Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱.因为开发者很容易滥用异常, ...
- c语言异常处理机制
异常处理机制:setjmp()函数与longjmp()函数 C标准库提供两个特殊的函数:setjmp() 及 longjmp(),这两个函数是结构化异常的基础,正是利用这两个函数的特性来实现异常. 所 ...
- C语言异常处理之 setjmp()和longjmp()
异常处理之除0情况 相信大家处理除0时,都会通过函数,然后判断除数是否为0,代码如下所示: double divide(doublea,double b) { const double delta = ...
- C语言异常处理编程的三个境界
http://blog.csdn.net/treefish2012/article/details/17466487 这是上一次看完Herb Sutter的<Exceptional C++> ...
- C语言异常处理
异常的概念-程序在运行过程中可能产生异常-异常(Exception)与Bug的区别 异常是程序运行时可预料的执行分支 Bug是程序中的错误,是不被预期的运行方式 异常(Exception)和Bug的对 ...
- GO语言异常处理03---自定义异常
package main import ( "fmt" "time" ) /* type error interface { Error() string } ...
- GO语言异常处理02---返回错误
package main import ( "errors" "fmt" "math" ) /*计算圆面积,同时返回[结果-错误对]*/ f ...
随机推荐
- [CareerCup] 8.5 Online Book Reader System 在线读书系统
8.5 Design the data structures for an online book reader system. 这道题OOB的题让我们设计一个在线读书系统,还是没有任何提示,所以发挥 ...
- [MetaHook] Quake FMOD function
QFMOD.h #ifndef QFMOD_H #define QFMOD_H #include "fmod.h" extern FMOD_RESULT (F_API *qFMOD ...
- iOS开发UI篇—popoverController简单介绍(ipad)
一.简单介绍 1.什么是UIPopoverController 是iPad开发中常见的一种控制器(在iPhone上不允许使用) 跟其他控制器不一样的是,它直接继承自NSObject,并非继承自UIVi ...
- 基于win32的socket编程及程序实现
初步研究了win32平台的Windows Sockets,它是Microsoft Windows的网络程序设计接口,它是从Berkeley Sockets扩展而来的,以动态链接库的形式提供给我们使用. ...
- JavaScript实例---表格隔行变色以及移入鼠标高亮
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- 自动备份SQL数据库到云存储Storage
如何自动备份SQL数据库到Storage呢. 前提条件需要SQL Server2012 SP1 CU2或更高版本 1. 备份SQL Azure数据库到云存储Storage 1)在SQL Server ...
- [wikioi2069]油画(贪心)
题目:http://www.wikioi.com/problem/2069/ 分析: 首先这个问题比较复杂,涉及到两个重要的考虑点,一个是当前拿来的颜色是否保留,一个是若保留后那么应该把当前盘子的哪个 ...
- 年前辞职-WCF入门学习(5)
前言 第五集比较简单,视频也只有7分多钟,但是用处还是挺大的.下面我会介绍. 本来想第六集一起介绍的,后来发现第六集内容比较多,有半个多小时,就不一起了.网站规定6小时内只能发布一篇文章到首页,,那我 ...
- angular的编辑器tinymce
angular的插件的确挺少的, 编辑器更是少, ui-tinymce是angular-ui推荐的一款编辑器(GIT: https://github.com/angular-ui/ui-tinymce ...
- C头文件之<stdio.h>
(stdio.h) 该头文件主要是执行输入输出操作.文件中重要的概念是“流”(streams).“流”在函数库中用FILE表示,用指针类型FILE *来操作.有三个标准流:stdin, stdout, ...