自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hyman的博客

你想要什么样的生活,并真正为之努力,你一定会得到它!

  • 博客(351)
  • 资源 (9)
  • 收藏
  • 关注

原创 【C#语法】C#中的托管资源和非托管资源

一 托管资源和非托管资源托管资源,顾名思义,就是依托在.net平台,在托管堆中创建,它的释放不由人工进行干预,而是由.net的垃圾回收器GC自动进行释放。相对于托管资源,非托管资源主要是操作系统级别的资源,.net平台无法对其释放,需要我们手动进行资源的回收。非托管资源一般对应于windows中的内核对象,常见的非托管资源如下所示:

2017-12-11 11:13:29 911 2

原创 错误处理(4)—— “{000208D5-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败

错误信息:中文版—— 无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Excel._Application”。此操作失败的原因是对 IID 为“{000208D5-0000-0000-C000-000000000046}”的接口的

2017-11-15 16:40:54 32690 2

原创 Not implemented (Exception from HRESULT: 0x80004001 (E_NOTIMPL))

今天在调试之前的代码:chart.ChartArea.Copy();时出现了这个问题,翻译过来就是chart的ChartArea.Copy()方法没有实现。当时觉得很奇怪,因为这段代码时一个成熟产品里面的,很多的现场都在使用,怎么可能出现问题。后面分析原因应该是改方法在Microsoft.Office.Interop.Excel 14.0中才支持,由于我本机安装了WPS,它修改了Com组件的注册信

2017-08-16 18:59:02 3588 1

转载 对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。

原文地址:http://www.cnblogs.com/gisoracle/p/5440846.html无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 

2017-08-11 10:41:01 17552 5

原创 【C#语法】类和方法的特性Attribute

一、引言                今天,我们来聊一下C#中的特性Attribute。何为特性Attribute?我们先看一个特性的使用例子,我们定义了一个Human类,但是由于某种原因该类不再被使用,但是我又不想将该类的代码注释或者删除掉,于是我们就可以通过给它赋予Obsolete特性来禁止别人使用: [Obsolete("该类已经过时,不能再使用",true)] pu

2017-07-03 20:28:36 6145 1

原创 Win32 SDK基础(13)—— 键盘和鼠标消息

一、键盘消息1、键盘消息WM_KEYDOWN —— 键盘按键按下时产生。WM_KEYUP —— 键盘按键弹起时产生。WM_SYSKEYDOWN —— 系统按键按下时产生,如ALT、F10等等WM_SYSKEUP —— 系统放开时产生WM_CHAR —— 字符消息2、消息参数:按键消息:WPARAM —— 按键的VirtualKey(虚拟键码)LPARAM —

2017-05-31 09:35:42 2836 2

原创 Win32 SDK基础(12)—— WM_PAINT消息的处理

一、引言        在计算机中,屏幕上显示的一切东西几乎都是绘制的,包括窗口、对话框、图片、以及一切文字,而WM_PAINT消息就是在绘制这些对象时,系统触发的消息。我们在计算机中的每一个操作,几乎都会触发这个消息,它也是WIndows中最重要的消息之一。本文主要针对该消息进行试验,以进行全面的学习。二、WM_PAINT基础 2.1 宏定义#define WM_PAIN

2017-04-13 14:46:45 11328

原创 Win32 SDK基础(11)—— 消息队列和GetMessage/PeekMessage、SendMessage/Postmesage

一、消息队列1.1 消息队列        消息队列是用来存放消息的一个队列,消息在队列中先入先出,所有的窗口程序都具有消息队列,程序可以从队列中获取消息。1.2 消息队列的类型        系统消息队列:由操作系统维护的消息队列,存放系统产生的消息,如鼠标、键盘消息等等。        程序消息队列:属于每一个应用程序(线程)的消息队列,用应用程序维护。

2017-04-12 17:35:04 4174

原创 36.动态SQL

一、引言       前面介绍的所有内容,所操作的数据库表必须存在,否则执行子程序时就会出现问题,这种方法叫做静态SQL。PLSQL中有一种能够定义程序时不指定具体的操作对象,在执行时动态传入对象的技术,叫做动态SQL。二、动态的创建表格并返回表格行数       下面的代码,我们定义了一个名叫get_table_count_fun的function,该函数接收一个字符串格式的表名作为

2017-04-06 09:53:21 1298 1

原创 35.表级和行级DML触发器

一、引言        触发器类似于过程和函数,都有程序主题部分(声明段、可执行段、异常处理段),但是调用其和函数不同,触发器为依靠事件执行的,且由于其是隐式调用的,触发器没有参数。        本文主要介绍oracle中的DML触发器,顾名思义就是执行DML语句对表进行增、改、查时执行的触发器。        我们先创建如下的表myemp:create table myemp

2017-03-30 10:51:13 1504

原创 34.C#调用Oracle中的包

在上一文中我们介绍了PLSQL中包创建方法,本文介绍在C#中调用包中存储函数和存储过程的方法,以上一文中我们封装到emp_pack包中的get_emp_func函数为例,我们介绍C#中调用该函数的方法。        首先,emp_pack包体的定义如下:create or replace package body emp_packas function get_emp_func(

2017-03-29 16:04:40 2477

原创 33.PLSQL中的包

一、引言        PLSQL中的包类似于C++中的类,在包中我们可以定义变量、游标、存储过程、存储函数等等。它实现了将上述类型统一创建和管理,同时在不同包之间这个PLSQL的对象不会存在命名冲突问题。包的定义包含两部分,包头和包体,有点类似于C++中的类的头文件和cpp文件。在包头中我们对变量、存储过程等等进行声明,而在包体中是对他们的实现。下面,我们在emp表的基础之上介绍包的用法。如

2017-03-29 09:49:49 1247

原创 32.C#调用Oracle的存储过程和函数

一、引言                在前面的文章中我们分别讲解了Oracle中存储过程和存储函数创建的方法,本文主要介绍在C#中调用之前创建的存储过程和函数的方法。二、C#调用带参的存储过程        首先,假设我们有以下数据表emp:      并创建了存储过程insert_emp:create or replace procedure insert_emp

2017-03-28 16:39:13 4229

原创 31.PLSQL中的函数

一、存储函数的定义        函数是PLSQL中另一种子程序,与存储过程不同的是,存储函数具有返回值,就像C/C++中的函数一样,可以通过函数返回某些值,我们先来看下下面定义的一个返回雇员薪资的函数:create or replace function get_income(v_empno emp.empno%type)return numberas v_income emp.s

2017-03-28 11:14:47 1262

原创 30.PLSQL中的过程

一、引言        过程,是对一组PLSQL语句的封装,以达到代码复用的目的。创建一个过程之后,它便存储在了数据库中,我们随时随地可在其他PLSQL的数据块中进行引用。二、创建一个简单的存储过程        接下来,我们先创建一个简单的显示“Hello World”的存储过程,代码如下:create procedure print_procasbegin dbms_o

2017-03-28 10:15:53 1130

原创 29.PLSQL中的参考游标

在上一文中,我们介绍了使用PLSQL的显式游标,该类游标在声明之初已经和sql语句进行了绑定,属于静态的游标。而本文中我们介绍的参考游标,属于动态游标,在其声明时未绑定sql语句,而我们在使用时可以动态的绑定sql语句。        如下,假设存在下表emp:        现在我们利用参考游标来实现打印输出deptno为20的所有雇员的信息:declare type c

2017-03-27 16:35:35 1185

原创 28.PLSQL中的显式游标

在上一文中,介绍了PLSQL中的隐式游标的用法,本文主要介绍另外一种游标的使用——显式游标。一、显式游标声明和属性1.1 显式游标的声明        所谓显式游标,就是我们在PLSQL的声明区,显式的去声明的游标,它在声明时已经绑定的SQL语句,将会管理该SQL语句返回的结果集,其声明格式如下:cursor 游标名称 is SQL语句        如果声明一个管理emp表查询

2017-03-27 15:47:16 1437

原创 27.PLSQL中的隐式游标

一、什么是游标       简单来理解,在PLSQL中,无论我们查询数据库还是向数据库插入、修改和删除的DML操作,凡是对数据库产生了影响,执行的sql语句都会返回一个由受影响的数据行组成的结果集,而游标就是管理这个结果集的对象。        Oracle中游标分为两种——隐式游标和显式游标,每个sql语句返回的结果集都会默认受‘SQL’这个隐式游标的管理;而显式游标是我们自定义的游标,

2017-03-24 17:01:06 2000

原创 26.PLSQL中使用forall和bulk collect批量操作数据库

假设有以下数据表emp:一、使用forall批量修改数据库       如果有以下需求:要求修改EMPNO为7499、7566、和7654的成员的sal值为5000,如果我们在Plsql中使用for循环,如下:declare type empno_varray is varray(8) of emp.empno%type; v_empno empno_varray :=em

2017-03-23 17:53:52 3177 1

原创 25.PLSQL中的数组

在上一文24.PLSQL中的索引表>>中,我们介绍了oracle中的索引表的使用,之前提到过索引表类似C语言中的数组,本文介绍一种PLSQL中真正的数组---Varray。Varray具有以下特点:        1、Varray是固定长度的数组,在创建时需要制定数组的长度和类型。        2、Varray可以放置重复的元素。        3、Varray是一种可以在PLSQL

2017-03-22 10:26:03 8961 1

原创 修改postfix和dovecot的认证方式

一、引言 在上一文中介绍了在Ubuntu 16.04布置postfix、dovecot邮件服务器的方法,本文紧接着上一文,主要介绍修改postfix认证方式和dovecot的认证方式。二、修改postfix认证方式为sasl-auth2.1 安装sasl2-bin 想要修改postfix的认证方式为sasl-auth,需要先安装sasl2-bin,安装的...

2017-03-21 19:42:25 7859

原创 Ubuntu 16.04 布置postfix、dovecot邮件服务器

一、引言        postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件,也就是我们常说的SMTP服务端。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。它更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。而Dovecot是一个开源的 IMAP和 POP3 邮件服务

2017-03-21 19:04:59 18325 3

原创 【C++模板】C++声明模板时能否用struct关键字代替class或者typename

我们知道C++中声明一个函数或者类的模板支持两种关键字class和typename:template struct Person{public: T age;};或者template struct Teacher{public: T age;};         而且我们知道在C++中struct和class关键字基本上是等价的,因为要兼容C语言,所

2017-03-20 19:04:19 9405 2

原创 【C++关键字】关于extern关键字的几点疑问

一、需要extern声明引入的变量是在别的文件中的头文件还是cpp文件?      我们先看下extern关键字的作用是什么?当我们将一个变量在文件中用extern声明引入后,它告诉连接器:这个变量的定义需要到别的模块中去寻找。而模块的编译单元是以cpp文件为核心的,但是cpp文件可以以include的方式包含任意的头文件。所以我们只有保证某个编译后的模块中含有extern声明的变量即可,也就

2017-03-20 19:00:36 840

原创 24.PLSQL中的索引表

索引表类似于C语言中的数组,它允许我们以下标的形式去存储和访问表中的数据,但是和数组不同的是,索引表中的索引是可以不连续的,获取下标指定的数据时用’()’而非‘[]’,且不能用循环语句来遍历索引表。        索引表的下标支持的类型有以下三种:PLS_INTEGER、BINARY_INTEGER、VARCHAR2。存在其中的数据类型包括基本的NUMBER、VARCHAR2等基本的PLSQL

2017-03-20 18:53:46 2968

转载 Ubuntu 14.04 FTP服务器--vsftpd的安装和配置

http://jingyan.baidu.com/article/67508eb4d6c4fd9ccb1ce470.html

2017-03-20 10:30:51 1184 1

转载 Ubuntu 部署 Flask + WSGI + Nginx 详解

转载自:http://www.linuxidc.com/Linux/2015-09/123593.htm安装 Python环境接下来是python , Ubuntu的默认环境已经预装 python 2.7所以只需要安装 python的 pip 安装工具即可。pip 用于安装一些基于python 应用的软件工具,在下文中将会频繁使用。PIP如果用pytho

2017-03-20 10:22:04 4258 1

原创 23.PLSQL中的记录类型

PLSQL中的记录类型Record类似于C语言中的结构体,无非就是将若干相关联的字段组合成一个整体,假设有如下的表格,使用自定义的Record类型将其读取,它的使用方法归纳如下:一、使用普通的数据类型定义Recorddeclare TYPE mydept_type IS RECORD( dnum number, dname varchar2(20) ); v_de

2017-03-17 18:59:07 3111 1

原创 22.PLSQL中的程序结构语法

假设有下表emp:一、条件分支1.1 找到empno为7499的员工,如果其sal小于2000,就直接加到2000declare v_sal number;begin select sal into v_sal from emp where empno=7499; if v_sal<2000 then update emp set sal=2000 wher

2017-03-08 11:03:16 759 1

原创 21.PLSQL中的变量声明

一、在声明区只声明不赋值declare v_num number;begin v_num:=30; dbms_output.put_line('v_num变量的内容是:'||v_num);end;/二、在声明区声明时同时赋值declare v_num number :=40;begin dbms_output.put_line('v_num变量的内容是:

2017-03-06 13:52:59 5165

原创 20.索引

假设有以下emp表格:         现在我们要查询所有sal值大于2000的人员的信息,对应的sql语句如下:select * from emp where sal>2000;        在正常情况下,数据库引擎会自上而下逐条检查记录,如果sal大于2000,该条记录就会被保留。在数据量较小的情况下,这个过程耗费时间可能不会很长,但是如果数据条数过多,有几万条或者几十万

2017-03-01 14:00:07 721

原创 19.oracle伪列

一、ROWID伪列        数据表中每一行所保存的记录,Oracle都会默认为每条记录分配一个唯一的地址编号,这个地址编号就是ROWID。1.1 查询ROWID      select rowid,deptno,dname,loc from dept;        ROWID保存着该条数据数据对象号(表空间)、相对文件号(文件)、数据块号(数据块)和数据行号(行)信息,

2017-02-28 15:10:42 961

原创 18.序列

一、创建默认序列create sequence myseq;二、创建含有步长和起始值的序列create sequence myseq increment by 1 start with 0;三、使用序列的nextval属性insert into mydept values(myseq.nextval,'系统软件部');四、删除序列drop sequence myse

2017-02-27 19:06:37 827

原创 17.视图

假设有以下表:1、创建视图create or replace view myview as select * from emp where deptno=30;2、查看视图select * from myview;3、向视图里面插入数据insert into myview values(8888,'SOFT','developer',7839,sysdate

2017-02-24 11:09:32 924

原创 16.约束关系

一、主键约束1.1 表级创建create table mydept(id number, dept_name varchar2(20),constraint pk_id primary key(id));1.2 列级创建create table mydept(id number constraint id_pk primary key,dept_name varchar2(20

2017-02-23 17:08:50 1630

原创 15.创建、删除和修改表的DDL语句

一、新建表1.1 新建表增加列级主键约束create table mydept(dept_id number constraint pk_dept_id primary key,dept_name varchar2(20));1.2 新建表增加表级主键约束create table mydept(dept_id number,dept_name varchar2(20),constr

2017-02-21 17:52:53 2875

原创 14.管理表中的数据DML语句

dept表数据如下:一、在表中插入数据insert into dept values(50,'SOFT','SHENZHEN');或者:insert into dept (deptno,dname,loc) values(50,'SOFT','SHENZHEN');二、修改表中的数据update dept set dname='soft2',loc='shangha

2017-02-20 11:23:22 842

原创 13.子查询返回多行多列的数据

假设有下面两张表:部门表dept雇员表emp        列出公司各个部门的经理的姓名、薪金、部门名称、部门人数、部门平均工资。步骤1:查找每个部门经理的姓名和薪金。select ename,sal from emp where job='MANAGER';步骤2:连接dept表,查询部门名称。select e.ename,e.sal,

2017-02-17 11:27:15 14317

原创 用flask开发个人博客(40)—— Flask中三种测试方法

一、单元测试并统计测试的覆盖率1.1 Flask中的单元测试        在之前的文章中介绍过在flask中进行单元测试的方法,目前我们的代码中存在下面的单元测试:classBasicTestCase(unittest.TestCase): def Setup(self): self.app=create_app('testing') self

2017-01-20 17:31:13 8515

原创 一张图解释Telnet和SSH

Telnet实现原理:ssh实现原理(以Git客户端和服务端通信为例):

2017-01-20 09:59:40 2108

mock框架插件 mod.dll

mod.dll是一款单元测试模拟框架,常常被用来进行单元测试 [TestMethod] public void Relocation() { var mockContext = new Mock<ControllerContext>(); mockContext.Setup(c => c.HttpContext.Response.Redirect("http://www.baidu.com")); var controller=new HomeController(); controller.ControllerContext = mockContext.Object; controller.Relocation(); mockContext.Verify(); }

2018-09-29

System.Linq.Dynamic.dll

System.Linq.Dynamic.dll实现了C#中动态的linq查询,引用之后可以以字符串的形式使用linq。

2018-09-29

Win7 64位安装DNS root.zone等配置文件

localhost.rev、localhost.zone、msvcr100d.dll、msvcr110d.dll、named.conf等在win7上利用ntbind架设Windows下的DNS服务器必要组件

2016-12-10

TCP-IP详解卷2:实现

TCP-IP详解卷2:实现

2016-11-17

TCP-IP详解卷3:TCP事务协议

TCP-IP详解卷3:TCP事务协议

2016-11-17

TCP-IP详解卷1:协议

TCP-IP详解卷1:协议

2016-11-17

MICROSOFT SILVERLIGHT 4从入门到精通

《Microsoft Silverlight 4从入门到精通》作为一本容易上手的教程,沿用深受读者欢迎的Step by Step风格,通过实例手把手引导读者构建、部署和维护Silverlight应用程序。《Microsoft Silverlight 4从入门到精通》浅显易懂,概念清楚直观,可读性强。全书共14章,主题广泛,涉及基础和控件,布局和样式,RIA和图像处理,MediaElement的对象模型、Silverlight的变换和动画引擎,浏览器桥,Windows Phone和XNA等,是帮助读者理解Silverlight开发全景的理想参考。, Laurence Moroney是Microsoft高级技术传播者,致力于Silverlight和用户体验。他有十几年的软件开发和实现经验,写过大量有关Windows Presentation Foundation、Web开发、安全性和互操作性的书籍和文章。

2016-11-17

局域网聊天工具

vc6.0写的一个局域网聊天工具,分为服务器代码和客户端代码

2014-08-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除