- 博客(124)
- 资源 (1)
- 收藏
- 关注
原创 委托与事件的学习
委托:委托是一个类型,是一个函数指针类型,这个类型将该委托的实例化对象所能指向的函数的细节封装起来了,既规定了所能指向的函数的签名,也就是限制了所能指向的函数的参数和返回值。当实例化委托的时候,委托对象会指向某一个匹配的函数,实质就是将函数的地址赋值给了该委托的对象,然后就可以通过该委托对象来调用所指向的函数了。多播委托:委托也可以包含多个方法,这时候要向委托对象中添加多个方法,这种委托称为多播委托
2015-12-01 17:02:59
462
转载 如何追中异常,减少debug时间
今天在debug的时候,又出现了空指针,我这次真的火了!每次遇到空指针,.net给出的信息总是非常的少,我根本不知道是哪里Throw出来的,只能反复检查代码。 思路大概是:获取exception的调用堆栈。获取exception相关的这个方法的方法的IL代码结合excpetion的IL偏移量和方法的IL,把调用源找出来。代码 class Program { s
2015-11-24 15:32:18
432
原创 可靠对话与可靠消息传递
一、 WCF中可信赖会话(ReliableSession) WCF的可信赖会话在绑定层保证消息只会被传输一次,并且保证消息之间的顺序。当使用TCP(Transmission Control Protocol,传输控制协议)通信时,协议本身保证了可靠性。然而,它只在两点之间的网络包这个层面提供了这样的保证。WCF的可信赖会话特性保证了在传输过程中消息不会丢失、重复或错位。这种保证是消息层面的,
2015-11-23 17:50:43
473
原创 并发与实例模式
一、 SQL中的事务处理 无论是基于SQL Server的T-SQL,抑或是基于Oracle的PL-SQL都对事务提供了原生的支持。以T-SQL为例 我们可以通过如下三个SQL语句实现事务的启动、提交与回滚: ◦ BEGIN TRANSACTION: 开始一个事务; ◦ COMMIT TRANSACTION:提交事务 ◦ ROLLBACK TRANSACT
2015-11-23 17:46:08
301
原创 分布式事务处理
概述 事务是一个最小的工作单元,不论成功与否都作为一个整体进行工作。 由于事务是由几个任务组成的,因此如果一个事务作为一个整体是成功的,则事务中的每个任务都必须成功。如果事务中有一部分失败,则整体事务失败。 当事务失败时,系统返回到事务开始前的状态。这个取消所有变化的过程称为“回滚”( rollback )。 例如,如果一个事务成功更新了两个表,在更新第三个表时失败,
2015-11-23 17:44:37
347
原创 并发与实例模式
一、 SQL中的事务处理 无论是基于SQL Server的T-SQL,抑或是基于Oracle的PL-SQL都对事务提供了原生的支持。以T-SQL为例 我们可以通过如下三个SQL语句实现事务的启动、提交与回滚: ◦ BEGIN TRANSACTION: 开始一个事务; ◦ COMMIT TRANSACTION:提交事务 ◦ ROLLBACK TRANSACT
2015-11-23 17:42:51
279
原创 服务行为和异常处理
代码形式发布端点时,可以是多个绑定形式, 服务端代码如下: ServiceHost host = null; //启动 private void button1_Click(object sender, EventArgs e) { //地址 Uri pipeaddress = new Uri("ne
2015-11-23 17:41:29
426
原创 WCF异步调用模式
异步调用操作系统发展到今天已经十分精巧,线程就是其中一个杰作。操作系统把 CPU 处理时间划分成许多短暂时间片,在时间 T1 执行一个线程的指令,到时间 T2又执行下一线程的指令,各线程轮流执行,结果好象是所有线程在并肩前进。这样,编程时可以创建多个线程,在同一期间执行,各线程可以“并行”完成不同的任务。 在单线程方式下,计算机是一台严格意义上的冯•诺依曼式机器,一段
2015-11-23 17:38:45
1775
原创 WCF通信模式
**请求/响应模式 单工模式 双工模式** 请求/响应 请求/响应通信是指客户端向服务端发送消息后,服务端会向客户端发送响应。这也意味着在接收到服务的响应以前,客户端不会继续执行操作。[OperationContract] string getOrders(DateTime dt);请求/响应模式是默认的消息模式。返回值是void,也属于请求/响应消息交换。除非客户端异
2015-11-23 17:35:55
352
转载 备份集中的数据库备份与现有的数据库不同
因为是在另一台电脑对同名数据库做的备份,用常规方法还原,提示不是相同数据库,不让还原,在网上找到下面的方法解决了:一、右击系统数据库master,新建查询执行以下SQL代码:RESTORE DATABASE xxxFROM DISK = 'E:\DB\xxx.bak' --bak文件路径with replace,MOVE 'xxx' TO 'D:\Program Files\Microso
2015-11-23 16:40:37
1725
原创 Host、EndPoints及配置服务(二)
服务的三要素(ABC) A:Address 意味着在哪里(也含有传输方式信息) B:Binding 意味着怎么做(与地址的传输方式要匹配) C:Contract意味着做什么(服务契约)配置文件:
2015-11-18 09:17:22
2540
原创 Host、EndPoints及配置服务(一)
服务的三要素(ABC) A:Address 意味着在哪里(也含有传输方式信息) B:Binding 意味着怎么做(与地址的传输方式要匹配) C:Contract意味着做什么(服务契约)配置文件: <system.serviceModel><services><servicename="CalculatorService"behaviorConfiguration="Calculato
2015-11-17 17:27:11
915
原创 WCF契约及其编程
接口} 定义一个接口是为了遵循同一种规范,便于程序的扩展。} 关键字◦ Interface◦ public ◦ abstract理解契约式编程 } 契约合同能保障双方的利益,对客户来说,合同规定了供应者要做的工作;对供应者来说,合同说明了如果约定的条件不满足,供应者没有义务一定要完成规定的任务。该道理同样也适用于软件. 所以,契约
2015-11-17 17:24:14
318
原创 理解多层分布式架构、剖析webservice、remoting技术
客户端调用时需要生成一个代理类 WCF的宿主程序:IIS、控制台程序、。。。 高层不应该依赖于底层,而是应该依赖于抽象;在高层与底层之间形成一个抽象层。也就是说高层与底层之间的依赖是松散的,松散耦合。契约式编程带来的意义:接口的意义。 如果我们采用类库的形式 它会给我们提供测试客户端。 服务是一组向客户端提供可用功能的端点(Endpoints)。而端
2015-11-17 17:23:06
2278
原创 SOA思想、OO思想、WCF概述
理解面向对象SOA(Service-Oriented-Adrchiteture) 是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的独立功能实体实现的一种软件系统架构。SOA是一个组件模型,它将应用程序的不同功能单元通过这些服务之间定义良好的接口和契约联系起来。可以灵活的组合,也可以独立运行的,是一种软件系统架构。面向对象里有一个原则:开发封闭原则:对系
2015-11-12 17:10:35
1523
原创 oracle管理、备份恢复、数据字典
数据库管理员的职责:1, 安装和升级oracle数据库2, 建库,表空间,表,试图,索引3, 制定并实施备份和恢复的计划4, 数据库权限管理,调优,故障排除5, 对于高级dba,要求能参与项目开发,会编写sql语句、存储过程、触发器、规则、约束、包 管理数据库的用户主要是sys和system两用户区别:1, 存储的数据的重要性不同Sys:所
2015-11-11 16:36:35
452
原创 oracle事务以及sql函数
什么是事务? 事务用于保证数据的一致性,它由一组相关的dml语句组成,该组的dml语句要么全部成功,要么全部失败。事务的几个重要操作1 设置保存点 savepoint a2 取消部分事务 rollback to a3 取消全部事务 rollback 只读事务:是指只允许执行查询的操作,而不允许执行任何其他dmL的操作,使用只读事务可以确保用户只能取得某时
2015-11-11 16:34:59
543
原创 过滤和排序
SQL> –查询10号部门员工 SQL> select * 2 from emp 3 where deptno=10; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO 7782 CLARK
2015-11-10 14:24:20
314
原创 多行函数(sum,count,avg,having和where的区别)
SQL> host clsSQL> –工资总额 SQL> select sum(sal) from emp; SUM(SAL) 29025
2015-11-10 14:19:32
1390
原创 oracle多表查询(外连接,自连接)
SQL> host clsSQL> –等值连接 SQL> –查询员工信息: 员工号 姓名 月薪 部门名称 SQL> desc dept 名称 是否为空? 类型DEPTNO
2015-11-10 14:16:06
619
原创 oracle单行函数
SQL> –字符函数 SQL> select lower(‘hellO WORld’) 转小写,upper(‘hellO WORld’) 转大写,initcap(‘hello world’) 首字母大写 2 from dual;转小写 转大写 首字母大写 hello world H
2015-11-10 14:13:24
292
原创 系统exception,以及自定义例外
/* Zero_Divide ( 被零除)*/ set serveroutput on declare pnum number; beginpnum := 1/0;exception when Zero_Divide then dbms_output.put_line(‘1: 0不能做被除数’); dbms_output.pu
2015-11-10 14:11:56
356
原创 oracle重点内容
PL/SQL procedure language/sql PL/SQL把SQL语言的数据操纵能力与过程语言的数据处理能力结合起来,使得PL/SQL面向过程但比过程语言简单,高效,灵活和实用 1 语法 Declare 说明部分(变量说明,光标申明,例外说明) Begin 语句序列(DML) Exception 例外处理语句 End ; / 2 如果需要在屏
2015-11-10 14:10:37
499
原创 存储过程三个例子
/* 实例1:统计每年入职的员工个数。可能SQL: select to_char(hiredate,’yyyy’) from emp; */ set serveroutput on declare cursor cemp is select to_char(hiredate,’yyyy’) from emp; phiredate varchar2(4);–计数器 coun
2015-11-10 14:06:43
338
原创 oracle 闪回
SQL> host clsSQL> /* SQL> 1. 错误地删除了记录 SQL> 2. 错误地删除了表 SQL> 3. 查询历史记录 SQL> 4. 如何撤销一个已经提交的事务 SQL> SQL> 闪回的类型 SQL> 1. 闪回表:将表回退到过去的一个时间上 SQL> 2. 闪回删除:Oracle回收站 SQL> 3. 闪回版本查询:所有历史记录 SQL> 4. 闪回事务
2015-11-10 14:05:04
331
原创 分布式数据库
SQL> –创建数据库链路 SQL> create database link l2 connect to scott identified by tiger using ‘remoteorcl’; create database link l2 connect to scott identified by tiger using ‘remoteorcl’
2015-11-10 13:59:57
231
原创 带参数的光标
–带参数的光标:查询某个部门的员工姓名 set serveroutput ondeclare cursor cemp(pdno number) is select ename from emp where deptno=pdno; pename emp.ename%type; begin open cemp(20); loop fetch cemp into p
2015-11-10 13:58:20
222
原创 带参数的存储过程
/* 给指定的员工涨100的工资,并打印涨前和涨后的薪水create [or replace] PROCEDURE 过程名(参数列表) AS PLSQL子程序体;SQL> begin 2 raiseSalary(7839); 3 raiseSalary(7566); 4 commit; 5 end; 6 / 涨前:7
2015-11-10 13:57:51
262
原创 存储函数
/* 查询某个员工的年收入CREATE [OR REPLACE] FUNCTION 函数名(参数列表) RETURN 函数值类型 AS PLSQL子程序体;*/ create or replace function queryEmpIncome(eno in number) return number as –变量 psal emp.sal%type; pcom
2015-11-10 13:57:01
198
原创 触发器应用场景
/* 实施复杂的安全性检查限制非工作时间向数据库插入(emp)数据:周末: to_char(sysdate,’day’) in (‘星期六’,’星期日’) 上班前,下班后:to_number(to_char(sysdate,’hh24’)) not between 9 and 18 */ create or replace trigger securityEmp before insert
2015-11-10 13:56:25
1044
原创 测试oracle存储过程,光标,连接等的java代码
package demo.test;import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultSet;import oracle.jdbc.OracleCallableStatement; import oracle.jdbc.OracleTypes;import org.junit
2015-11-10 13:54:49
315
原创 存储过程例子(1)
/* 用PLSQL语言编写一个程序。按系(系名)分段统计(成绩小于60分,60-85分, 85分以上) “大学物理”课程各分数段的学生人数,及各系学生的平均成绩。可能的SQL: 系: select dno,dname from dep; 成绩:select grade from sc where cno = (select cno from course where cname=???)
2015-11-10 13:53:02
787
2
原创 out参数以及使用光标问题
/* 查询某个员工的姓名 月薪 职位*/ create or replace procedure queryEmpInfo(eno in number, pename out varchar2, psal out number
2015-11-10 13:40:43
429
原创 java-oracle数据库连接
package demo.util;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement;public class JDBCUtils { private
2015-11-10 13:39:41
402
原创 存储过程中,if语句使用
–if语句:判断用户输入的数字set serveroutput on/* 1.提示信息 2. 接收键盘输入 num 是一个地址值SQL优化: num绑定变量(尽量使用绑定变量) select * from emp where deptno=10; –> 执行计划 select * from emp where deptno=20; –> 执行计划 –> select * from
2015-11-10 13:37:47
15396
1
原创 子查询sql语句及注意问题
SQL> –查询工资比SCOTT高的员工信息 SQL> –1. SCOTT的工资 SQL> select sal from emp where ename=’SCOTT’; SAL 3000
2015-11-10 13:35:29
965
1
原创 视图view,序列sequence
SQL> host clsSQL> –视图 SQL> –第一个视图: 员工号 姓名 月薪 年薪 SQL> create view view1 2 as 3 select empno,ename,sal,sal*12 annlsal from emp; create view view1 * 第 1 行出现错误: ORA-01031: 权限不足 S
2015-11-10 13:33:17
484
原创 行号rownum问题,以及相关子查询
SQL> –第一题 行号 rownum(伪列) SQL> select rownum,empno,ename,sal 2 from emp;ROWNUM EMPNO ENAME SAL 1
2015-11-10 13:31:07
660
原创 联合查询,集合运算
SQL> /* SQL> 查询10和20号部门的员工 SQL> 1. select * from emp where deptno in (10,20); SQL> 2. select * from emp where deptno=10 or deptno=20; SQL> 3. 集合运算 SQL> select * from emp where deptno=10 SQL
2015-11-10 13:28:25
321
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人