摘要: This article explains how to handle database exceptions. Most of the material in this article applies whether you are working with the MFC classes for Open Database Connectivity (ODBC) or the MFC classes for Data Access Objects (DAO). Material specific to one or the other model is explicitly marked. 阅读全文
posted @ 2012-07-09 10:06 MarvinGeng 阅读(382) 评论(0) 推荐(0) 编辑
摘要: c++ 对象依其生存空间,适当的按照一定顺序被析构,但是如果发生异常情况,而程序设计了异常处理程序,控制权就会截弯取直地“直接跳”到你所设定的处理程序去,这时候堆栈中的c++对象有没有机会析构?这得视编译器而定。如果 编译器支持unwinding功能,就会在一个异常情况发生时,将堆栈中的所有对象都析构掉 阅读全文
posted @ 2012-07-06 17:30 MarvinGeng 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 静态全局对象 构造函数 的调用操作必须靠startup代码帮忙startup代码可能做些函数库初始化、进程信息设立、I/O stream 产生等操作,以及对static对象的初始化操作(也就是调用其构造函数) 阅读全文
posted @ 2012-07-06 17:15 MarvinGeng 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 如果楼主不想修改x里的内容(I'think)那么可以用replace函数x=replace(x,"'","''")在SQL的查询条件中加入单引号,各破坏SQL的语法,属于SQL注入范筹严格来讲,如果加入单引号会出错,这样说明另一个程序的BUG,就是没有对查询条件进行过滤系统存在SQL注入安全缺陷。 阅读全文
posted @ 2012-07-06 14:08 MarvinGeng 阅读(3076) 评论(0) 推荐(0) 编辑
摘要: 程序中的局部变量存放在栈中,因而不能太大,如:double a[1000][1000];就可能不能通过编译。用户动态分配的内存,分配于堆中,可以很大。如double **a = new double *[1000];for(int i = 0; i < 1000; ++i) a[i] = new double [1000]; 阅读全文
posted @ 2012-07-06 13:45 MarvinGeng 阅读(148) 评论(0) 推荐(0) 编辑