IDispatch接口原理与应用

 

IDispatch接口原理与应用

目录:

前言:

IDispatch接口的定义:

创建支持IDispatch接口的COM对象:

标准方式调用IDispatch接口的方法:

采用ATL智能指针类调用IDispatch接口的方法:

使用类COleDispatchDriver调用IDispatch的方法:

 

前言:

尽管com接口是跨语言的,但是很多语言在使用com时更多地通过Automation技术来和com对象通信。IDispatch接口是Automation的核心技术。

尽管c++程序员并不喜欢甚至讨厌使用IDispatch接口,因为调用它实在是非常的麻烦而且易出错。但是不可否认大量的现存组[……]

查看更多……

C# 4动态编程新特性与DLR剖析

近几年来,在TIOBE 公司每个月发布的编程语言排行榜 [1] 中,C# 总是能挤进前10 名,而在近10 年的编程语言排行榜中,C# 总体上呈现上升的趋势。C# 能取得这样的成绩,有很多因素在起作用,其中,它在语言特性上的锐意进取让人印象深刻

近几年来,在TIOBE 公司每个月发布的编程语言排行榜 [1] 中,C# 总是能挤进前10 名,而在近10 年的编程语言排行榜中,C# 总体上呈现上升的趋势。C# 能取得这样的成绩,有很多因素在起作用,其中,它在语言特性上的锐意进取让人印象深刻( 图1 )。

  图1 C#各版本的创新点

2010 年发布的 C# 4 ,最大的创新点是拥有[……]

查看更多……

Oracle中Rman自动备份数据库

 

目录
数据库修改为自动归档模式
2 修改rman参数
3 rman自动备份脚本
4 设置系统自动备份参数
5  rman还原
恢复整个数据库
恢复单个表空间
 1 数据库修改为自动归档模式。
为什么要设置为自动归档模式呢?主要是因为,如果不设置为自动归档模式,使用rman的时候需要把数据库修改到mount状态而不是open状态。而自动归档模式是可以在open使用中进行热备的。下面是修改自动归档模式步骤:
1      Sqlplus / as sysdba  进入数据库(本地)
2  &nb[……]

查看更多……

EXPDP

使用EXPDP和IMPDP时应该注意的事项:

EXP和IMP是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。

EXPDP和IMPDP是服务端的工具程序,他们只能在ORACLE服务端使用,不能在客户端使用。

IMP只适用于EXP导出的文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出的文件,而不适用于EXP导出文件。

expdp或impdp命令时,可暂不指出用户名/密码@实例名 as 身份,然后根据提示再输入,如:

expdp schemas=scott dumpfile=expdp.dmp DIRECTORY=dpdata1;

一、创建逻辑目录,该命令不会在操作系统创建真正的[……]

查看更多……

EXP & IMP

导入导出时 oracle 提供的实用工具, 如果这些被导出的对象还存在其他的相关对象, 比如要被导出的表上还存在索引, 注释等, 则导出工具会自动将这些相关的对象也提取出来, 并放入到导出的文件中去. 看来是将对象一起导出, 而非需要先在目标数据库中创建对象, 然后再将数据导入.

可以实现跨平台.

相对于逻辑备份来说, 导入导出是将数据库中的对象与数据存储在一个文件中, 然后在导入到新的数据库, 这是数据库中逻辑文件的转储, 而物理备份, 备份的是数据所在的数据块.

在执行导入过程中, 按照下面的顺序导入表, 表里的数据以及相关对象:

1. 创建表结构

2. 导入表的数据

3. 创建相关索引

4. 导入触发[……]

查看更多……

oracle中imp命令详解

Oracle的导入实用程序(Import utility)允许从数据库提取数据,并且将数据写入操作系统文
件。imp使用的基本格式:imp[username[/password[@service]]],以下例举imp常用用
法。

1. 获取帮助

imp help=y

2. 导入一个完整数据库

imp system/manager file=bible_db log=dible_db full=y ignore=y

3. 导入一个或一组指定用户所属的全部表、索引和其他对象

imp system/manager file=seapark log=seapark fromuser=se[……]

查看更多……

查看oracle数据库是否归档和修改归档模式

Oracle分为非归档模式(NOARCHIVELOG) 和归档模式(ARCHIVELOG)。非归档模式不产生归档日志,虽然节省了硬盘空间,但是备份方案选择很有限,通常只能选择冷备份。还原也只能还原到备份那一时刻的数据,通常也仅在开发时使用(据说在数据仓库中也使用),Oracle安装默认就是非归档模式。在生产环境中我们因该使用归档模式,它会产生归档日志,可以使用多种备份和还原方案,对与Oracle管理员来说应该更改模式是必然的选择。

首先查看数据库现有模式可使用以下语句

select name,log_mode from v$database;

也可以用下面的语句
archive log list;(该[……]

查看更多……

pl/sql中三种游标循环效率对比

这里主要对比以下三种格式的游标循环:

1.单条处理

open 游标;

LOOP  

FETCH 游标 INTO 变量;

EXIT WHEN  条件;

END LOOP;

CLOSE 游标;

 

2.批量处理

open 游标;

FETCH 游标 BULK COLLECT INTO 集合变量;

CLOSE 游标;

 

3.隐式游标

for x in (sql语句) loop

…–逻辑处理

end loop;

 

以上为工作中常见的几种游标处理方式,一般来说批量处理的速度要最好,隐式游标的次之,单条处理的最差,但是在我的实际工作中发现大部分使用的还是第一种游标处理。

归其[……]

查看更多……

浅谈OracleBulkCopy的使用

浅谈OracleBulkCopy的使用

考虑到前端应用往数据库里面插入数据,可以采用三种方式。

第一种:

        直接在程序代码里面写入SQL,这种方式处理简单,然后这种方式的效率很低,因为应用程序每次都需要把SQL传递给数据库服务器,

 然后数据库服务器解析,如果在一个循环内部不断的使用SQL访问数据库,那么需要不断的解析,因此会消耗很长的时间,同时,使用拼接SQL语句方式实现数据写入时,

 由于SQL语句是动态执行的,所以恶意用户可以通过拼接SQL的方式实施SQL注入攻击。 

第二种方法: 存储过程 
  优点:与S[……]

查看更多……

利用 ODP.NET 优化数据访问性能


本教程描述如何利用 ODP.NET 优化 .NET 应用程序的性能。

大约 20 分钟

本教程包括下列主题:

概述前提条件使用语句缓存使用 FetchSize 和 RowSize传递数组参数使用批处理 SQL、REF 游标和多活动结果集 (MARS)总结

 将鼠标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。

Oracle 数据库有多种优化从客户端[……]

查看更多……