下面列出各种破解vista的方法,按出现的时间顺序排列

1.替换法
原理:用替换vista的一些许可文件的办法来用测试版序列号激活vista,是最早出现的办法
缺点:许可变为测试版,有时间限制

2.kms私服激活法

原理:不是去微软的官方服务器激活,而是去私人架设的服务器激活,也可以用vmware虚拟机自己架设激活服务器或在局域网中其它机器架设激活服务器来进行激活。
优点:激活后跟正版软件并无区别,此法微软较难封杀。
缺点:只适用于b版(商业版)和e版(企业版),并且隔6个月就要重新激活一次。而且私服存在不稳定性,说不定哪天就关了,而自己架设的话比较复杂。
使用方法:http://www.vistafans.com/thread-89814-1-1.html

3.timestop(时间停止)法

原理:vista在激活之前有30天的试用期,此法加载一个驱动(timerstop.sys),使倒计时停止在30天,从而使你避免激活,无限试用。
优点:操作简便,可以用于u版(旗舰版),无功能限制(自动更新,梦幻桌面等都可使用)
缺点:vista处于未激活状态,虽然没有功能上的限制,但是对于追求完美的人来说,会感到影响美观。并且可以预见的是,微软一定会在未来的某次升级(如sp1)之后封杀此方法。
使用方法:推荐步骤是安装vista时不输序列号,并且不勾选"联机时自动激活Windows"。装好vista后不进行任何更新,在TimeStop.exe上点右键以管理员的身份运行TimeStop.exe,然后电脑会自动重启,完成破解。之后可以运行“slmgr.vbs -dlv”验证倒计时是否停止在30天。
点击下载timestop-v2
卸载方法:删除windowssystem32 imerstop.sys

4.刷bios法

原理:此法是将品牌机oem信息刷入你机器bios,然后可以使用oem版的vista.
优点:跟真正的oem正版没有区别
缺点:由于需要改bios、刷bios,对新手来说有难度,而且有一定危险性,并且每台机器不同,并不一定都能刷成功。
使用方法:不同主板有不同方法,具体请参考http://www.vistafans.com/thread-105205-1-2.html这帖以及其他的帖子,
卸载方法:再把bios刷回去

5.softmod(免刷BIOS或动态BIOS)法

原理:在启动vista之前,先往bios里添加slic的OEM验证数据,从而使vista认为你的机器为OEM的品牌机型。
优点:可以达到刷bios法的效果,而又没有刷bios的危险,操作简单。激活之后跟正版的oem vista没有区别。
缺点:每次启动时会闪过一堆字符,影响美观,也减慢启动速度(虽然只是减慢了一点点)。而且由于此法需要修改MBR来达到效果,如果你以前修改过MBR,例如品牌机或笔记本的隐藏分区还原功能,又例如Acronis True Image的F11功能,会产生冲突导致无法启动。
使用方法:(2选1)
1.使用网友做的全自动傻瓜包。http://mirror.gochina.cn/liuhang/SoftMod.exe
2.不想用全自动的话,手动进行也并不麻烦,建议有一定电脑基础的朋友手动修改,毕竟自己动手心里比较明白。具体方法请参考http://www.vistafans.com/thread-110365-1-2.html
卸载方法:以管理员方式运行uninstall.cmd,但是这样重启之后可能会导致vista被识别成盗版。

6.暴力算号法(强烈不推荐)

原理:随机生成序列号进行验证,直到验证成功。
优点:可能会算出真正的正版序列号。
缺点:目前的这个算法就是纯随机,效率太低,跟本没有实用性,能算出号的概率基本为0。
使用方法:
一.备份C:/windows/system32/slmgr.vbs,(如果算号成功,再替换回来);
二.用slmgr.vbs替换掉C:/windows/system32中的同名文件;(此步较复杂,下面单独说明)
三.记录下你的产品密钥,可以用Windows XP产品密钥查看器(压缩包中附带的keyfinder.exe)来验证;
四.开始-运行,输入slmgr.vbs -ipk generate,一个叫做 "wscript.exe"的进程将启动并可能占用大量CPU资源,它大约每30分钟核对10000个密钥;
五.现在开始等待,在得到结果之前,你可能要等待很长一段时间。慢慢等吧。过一段时间(几小时或几天),用keyfinder.exe检查你的密钥,看它是否已经改变;
六.如果已经改变,说明脚本已经找到有效的密钥。通过开始-运行来激活Vista,输入命令slmgr.vbs -ato
算号器下载:http://www.cnbeta.com/xiaolu/Vista_Brute_Force_Keygen.rar

7.OEM BIOS Emulation Toolkit
原理:通过设备驱动程序ROYAL.SYS 模拟OEM BIOS ,提供ACPI_SLIC信息。
优点:操作并不太复杂(我估计几天后一定会出现全自动傻瓜包),激活之后跟正版的oem vista没有区别。
缺点:在windows下安装驱动,有可能导致系统稳定性降低,而且目前此法不支持64位vista。由于跟timestop一样也是加载驱动,很可能微软在未来的某次更新之后封杀此法。
使用方法:参见http://www.cnbeta.com/modules.php?name=News&file=article&sid=23285

  事先准备:装好xp系统的电脑一台,vista安装iso。

  注:(1).Windows Vista要求安装在NTFS分区,但是其他分区可以是FAT32格式!

  (2)简单无损NTFS转换方式:运行cmd进入命令行模式,运行convert x: /fs:ntfs即可(x为需要转换分区盘符),其间可能需要重启计算机。注:该命令可以无损将FAT分区转换为NTFS分区,该过程不可逆!若对分区中没有有用数据,直接在XP下格式化为NTFS分区也能达到目的!

  (3)建议安装系统分区至少15GB.(我安完VISTA以后,系统区占用6GB。)

  想不损失硬盘中已有数据的前提下对硬盘进行重新分区,用PartitionMagic Portable V8.05 汉化绿色版

  一、Windows Vista系统安装准备

  1、把vista.iso用虚拟光驱加载,然后拷贝到硬盘中,我的是f:vista。(用的虚拟光驱是 DAEMON Tools V4.0.8 X64 and X86 [1120]简体中文版)

  2、把f:VISTA目录下的bootmgr和boot目录(其实只要里面的boot.sdi和bcd文件)拷贝到c盘根目录下,并在C盘根目录下建个sources文件夹。

  3、把f:vistasources下的boot.win复制到C盘下sourse文件夹。

  4、运行cmd-c:ootootsect.exe /nt60 c: (注意,此处bootsect在c:oot目录下)

  二、Windows Vista安装

  5、重启计算机,正在启动安装程序,加载boot.wim,启动PE环境。这个过程可能比较长,请等待……

  6、安装程序启动,选择你要安装的语言类型,同时选择适合自己的时间和货币显示种类及键盘和输入方式。

  7、出现“开始安装界面”,(要注意了,不点击“现在安装”)点左下角“修复计算机”(repair my computer)。 

  8、进入“系统恢复选项”,选择最后一项“命令提示符”(command prompt),进入DOS窗口。

  9、执行格式化命令format c:/q(注:如C盘是FAT32格式,想转NTFS格式的话,执行format c:/fs:ntfs)。

  10、安装系统,执行f:vistasourcessetup.exe,底下就是正常的安装了。

  这几天IE7、Windows Defender等等微软出的东西,都需要正版验证,使得很多XP纷纷下马。刚好最近我也研究了一下,就来说说吧。

  如果你不打算绕过正版验证的话,目前有两种办法可以使你通过正版验证:

  1. VLK版本的Windows XP
  VLK是Volume Licence Key的缩写,即大客户免激活版。如果你正在使用VLK版本,同时你所使用的Key没有被微软禁掉的话,你就可以安全通过正版验证。目前我试过可以通过Windows正版验证的Key有以下几个:

  MRX3F-47B9T-2487J-KWKMF-RPWBY
  QC986-27D34-6M3TY-JJXP9-TBGMD
  CM3HY-26VYW-6JRYC-X66GX-JVY2D
  DP7CM-PD6MC-6BKXT-M8JJ6-RPXGJ
  F4297-RCWJP-P482C-YY23Y-XH8W3

  更换CD-Key的话,可以使用我附件里面带的OEMXP来更换

  2. OEM版本的Windows XP
  如果你的机器是品牌机,那OK没问题,直接安装OEM版本的WindowsXP就行了。但如果是兼容机呢?那就必须对BIOS做些手脚了。详情参考如下文章:

  DMICFG 修改BIOS 激活十种OEM XP
  修改BIOS,实现联想OEM版Win XP免激活

  如果你的主板是华硕的话,还必须使用专用的DMI修改工具DMIFLASH来更新DMI信息。
  如,要加入联想的信息,就输入:dmiflash /dms:"LEGEND Dragon"
  注意,联想的家庭版和专业版,对应的显示信息是不相同的,HOME版对应的是"Legend QDI",PRO版对应的是"LEGEND Dragon"。

  改生产商: DMIFLASH /DMS:"XXXXXXXXXXXX"
  改型号: DMIFLASH /DPS:"Your Model Number"
  改 S/N: DMIFLASH /DSS:"Your Serial Number"

  相应的修改工具都可以在附件中找到

  award_winflash174 在Win下刷BIOS的工具
  dmicfg 直接更改dmi信息的工具
  flash893 dos下刷BIOS的工具,它不会象AWDFLASH一样的有严格检测。可以用作修复BIOS等等用。

   2007.04.17: 补充一个CHANGRVLKEY,因为发现一些系统不能通过OEMXP来更换CDKEY。把附件里面的这个把解压缩出来直接执行里面的CHANGRVLKEY.CMD即可。

 

附件:oemxp4.9.rar(793198 Byte)

附件:dmiflash.zip(42848 Byte)

附件:award_winflash1.74.rar(357412 Byte)

附件:dmicfg.zip(65932 Byte)

附件:flash893.rar(139059 Byte)

附件:changevlkey.zip(736 Byte)

  现在在XP和2003系统中,自动运行的功能被加强了。当插入U盘、移动硬盘、光盘时,它都会自动搜索上面的文件,并弹出对话框问你是否执行上面的文件,是否打开图片工具来导入等等。虽然方便了一些,但是从一定程度上导致了病毒的感染,或者是因为盘上文件过多导致拖慢系统速度等等。

  我们可以更改系统组策略来禁止自动运行:

  Run – "gpedit.msc" – Computer Configuration – Administrative Templates – System, 在里面有一项是Turn off Autoplay。把它改为Enable就可以禁止自动运行了。而且里面还有选项是选择是禁用所有自动运行还是只禁用CDROM的自动运行。

  对了,在中文的XP里面的话,是下面这几步:

  运行 – "gpedit.msc" – 计算机配置 – 管理模板 – 系统 – 关闭自动播放

  获得一台电脑是件容易的事情,但要让Linux和Vista在同一台及其上共存则显得略微困难一些。在XP及更早的Windows电脑上,要让Windows和Linux共存这样的事几乎是全自动化的,任何主流的分发版本都能轻易做到。而到了Vista时代,一切改变了。微软抛弃了它过去的boot.ini引导加载(bootloader),而采用了新的引导装置。

  新的加载装置BCD(启动设置数据)是与韧体相分离的,它还伴随了一个新的引导选项编辑工具BCDEdit.exe,而它似乎对用户并没有那么友善。顺便提一下,我在这里谈论这些并不是像一些主要关注双引导Linux的人那样。在你无论对Vista的引导性能作出什么修改的时候,BCDEdit都会是一个让你感到头疼的问题。不幸的是,你不得不使用Vista的引导装载功能,因为对于你已经安装了一个操作系统的计算机来说,而你又打算将其保留的话,Vista不太能较好地处理一些工作。

  而在我看来,我已准备抛弃我系统中现存的Windows XP媒体中心2005 Update Rollup 2操作系统。我可以将这个系统“升级”到Vista,我确实想给Vista一个闪耀光芒的绝佳机会,但升级当前的系统看起来似乎是一个自找麻烦的路子。

  除非你手上有大把的时间,不介意陷入一些兼容性的问题,又确切地知道自己所做的事情,否则请不要“升级”到Vista,还是做一个全新的安装比较好。

  而如果你需要双引导系统,无论如何你都必须决定做一次全新的安装。你可以看到,如果你是采用“升级”一个系统的方式,你就必须在Windows XP或是2000中做这些。而如果你这么做了,你就无法再分配或是重新你格式化你的硬盘。你仅能做的就是当你从Vista的DVD光盘中引导开始Vista的安装时对你的硬盘作一些操作。因此,除非你已经有一个足够大的分区用来正在另一个操作系统,要么你最好还是选择一次全新的安装。

在一切考虑完毕之后,我在我的系统上全新安装了Vista Ultimata。我将我系统中的300GB SATA硬盘分成两个相等的分区。在Vista的这边,我有了BitLocker的驱动加密选项,但我不打算使用它。

BitLocker确实还是带给我大量的好感,特别是在如果我打算携带一台仅支持Vista的笔记本外出时,如果有什么人将它偷走,我会很高兴地知道他们无法轻易地得到我的数据。

对于我来说,则存在两个问题。第一个是它要求TPM(受信平台模块)1.1芯片或是USB驱动。而HP并没有TPM芯片,它也没有六个USB接口。然而,如果我使用一个USB驱动来保存我的BitLocker加密密钥,那么它是否就一直都不应该离开我的电脑那?而现在,这对于这个重量级的系统来说并不存在确实问题,但如果我使用笔记本,任何人只要夺走了我的电脑包那也就很可能同时获得我的USB BitLocker的密钥。

使用BitLocker来进行双引导的真正问题在于,它会组织Linux访问这个分区上的任何数据。安全专家Bruce Schneier认为“你可以将BitLocker看作是一个反Linux的东西,因为它会使双引导受挫,”但我并不这么认为。即使安装了BitLocker,Vista仍然需要一个解密的分区来引导,因此双引导应该来说还是能够完成的。只是获得处在受BitLocker保护的NTFS分区上的数据对于Linux用户来说有可能会获取不到。

在我打算开始之前对BitLocker有了最终的一个想法。微软仅是让它在Enterprise和Ultimate版本上可用。Enterprise仅对那些大量购买的用户开放的,而Ultimate是其中最贵的版本。我发现这让人感到有一些小烦恼,小企业用户们将必须升级到Ultimate来获得我认为Vista中对于企业用户最好的一点。

正如Linux的磁盘加密来说,这项功能自从版本2.6.0在几年之前出现以来,已经使用CryptoAPI内置到Linux中。如果你不想使用这种DIY的方式弄脏你的双手,你也可以使用可用GUI的开源程序,TrueCrypt来使这项工作完成。

现在,我开始安装Vista。Vista中更好的地方在于它会在你一些没有指示如何应对的硬件时发出一些警示。而不好的方面就是,它也会像所有的操作系统一样,运行它认为它知道应该如何运行的硬件,但它并没有真正的一些提示。

在m7360n上,我很快发现无论是Vista、Ubuntu或是MEPIS都不能运行所有系统的硬件。我发现Vista有一个组件是完全无法处理的,而还有一些则需要在我让它们都可用之前求助于MEPIS。

关于这些的具体问题我打算等将来谈到硬件兼容性方面再说,因此我现在可以继续谈论如何让Vista和Linux双引导成功。在我做这些之前,让我将一件事说清楚。人们总是在谈论Linux如何如何有一些设备上的问题。而这也确实是事实。然而对于Vista来说,在其开发过程中的这方面,也还是有许多的硬件问题。

在大多数情况下,Vista和MEPIS的安装都能够没有任何问题地运行。所有来自DVD的操作系统,一旦你引导这个系统,开始安装它们,你最困难的工作就是安排一个合适的时间。

在Vista中,我也确实遇到许多不禁要发问“怎么回事!”的时刻。如果你看着Windows的安装屏幕,你就会看到它会列出Home和Business作为选项,但实际上在它们之间并没有什么差别。或者说,如果有差别存在,你也肯定无法从这样的显示中指出差别来。我着实思考了好一阵子,关于人们不确定他们到底是处在家中还是办公室里,但我让这个问题从我的脑海中略过了。

当系统都安装到了电脑上后,你很快就能发现你仅能引导进入Linux,这要归功于Vista那不友善的BCD。

在此有很多方法能解决这个问题。对于基于Ubuntu的系统,像MEPIS和Kubuntu来说,它们使用的是GRUB引导程序,下面就是你应该如何进行设置。

首先,你想要转换引导,也就是众所周知的高级用户模式。MEPIS让我能够通过su命令来完成。大多数Ubuntu家族会要求你使用sudo命令。而对于我们的目的来说,在Ubuntu下通过它的sudo设置来改变引导载入将会以同一种方式工作。

现在,在大多数的Linux中,你可以用你最喜欢的文本编辑器打开file(文件)/boot(引导)/grub/menu.lst,而不是字处理程序。而在我操作的时候,则是通过一个终端的窗口。

接着,你可以在文件的底部如下输入:

title Vista
rootnoverify (hd0,1)
savedefault
makeactive
chainloader +1

接着保存并将它关闭。

在我的操作中,我将Vista放在我的第一,也是仅有的硬盘的第二个分区中,因此root的设置是“hd0,1”。如果它在我第二硬盘的第二个分区,那么它就应该是“hd1,0”。

现在,当你引导你的系统时,你首先能看到的将是MEPIS的引导屏幕。如果你想要进入Linux,你只需要就这样放着。而如果你想要引导Vista,只需要简单地选定它,接着就会进入Vistsa的BCD菜单,而你就可以进入Vista了。

如果你想要更具想象力,在系统中运行Vista、XP、Red Hat、Mac OS X、Ubuntu、Solaris和……OS/2,你则应该获取一个高端的引导管理编辑器。在这个时候,我所知道最好的能够处理Vista的BCD的东西就是来自NeoSmart Technologies的EasyBCE 1.52。这是一个仅能在Windows下使用的免费程序。

在这都结束之后,正如你所看到的,我让Vista Ultimate和SimplyMEPIS 6.01都成功地安装并运行在我的电脑上。而且整个过程大部分是非常成功的。而这两个操作系统与硬件哪些匹配哪些存在问题,那就日后再谈。

是的,看,在MEPIS的窗口中出现了一个Internet Explorer的图标。

(原文作者:Steven J. Vaughan-Nichols)

  编辑注:学会了这些东西,您将基本可以独立完成ASP对数据库的所有操作。

  ASP连接数据库的11种方法——本文总结了使用ASP链接各种数据库的方法:

  1.Access数据库的DSN-less连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _

  Server.MapPath("数据库所在路径")

  2.Access OLE DB连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adocon.open"Provider=Microsoft.Jet.OLEDB.4.0;"& _

  "Data Source=" & Server.MapPath("数据库所在路径")

  3.SQL server连接方法:

  set adocon=server.createobject("adodb.recordset")

  adocon.Open"Driver={SQL Server};Server=(Local);UID=***;PWD=***;"& _

  "database=数据库名;"

  4.SQL server OLE DB连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adocon.open"provider=SQLOLEDB.1;Data Source=RITANT4;"& _

  "user ID=***;Password=***;"& _

  "inital Catalog=数据库名"

  5.Oracle 连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adocon.open"Driver={microsoft odbc for oracle};server=oraclesever.world;uid=admin;pwd=pass;"

  6.Oracle OLE DB 连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adocon.open"Provider=OraOLEDB.Oracle;data source=dbname;user id=admin;password=pass;"

  7.dBase 连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adocon.open"Driver={microsoft dbase driver(*.dbf)};driverid=277;dbq=————;"

  8.mySQL 连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adocon.open"Driver={mysql};database=yourdatabase;

  uid=username;pwd=yourpassword;option=16386;"

  9.Visual Foxpro 连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adocon.open"Driver={microsoft Visual Foxpro driver};sourcetype=DBC;sourceDB=*.dbc;Exclusive=No;"

  10.MS text 连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adocon.open"Driver={microsoft text driver(*.txt; *.csv)};dbq=—–;"&_

  "extensions=asc,csv,tab,txt;Persist SecurityInfo=false;"

  11.MS text OLE DB 连接方法:

  set adocon=Server.Createobject("adodb.connection")

  adocon.open"Provider=microsof.jet.oledb.4.0;data source=your_path;"&_

  "Extended Properties‘text;FMT=Delimited‘"

  <二>常用的四种SQL命令:

  1.查询数据记录(Select)

  语法:Select 字段串行 From table Where 字段=内容

  例子:想从book表中找出作者为"cancer"的所有记录,SQL语句便如下:

  select * from book where author=’cancer’

  "*"是取出book表所有的字段,如查询的字段值为数字,则其后的"内容"便无须加上单引号,如是日期,则在Access中用(#)包括,而在SQL server中则用(’)包括,

  如:

  select * from book where id=1

  select * from book where pub_date=#2002-1-7# (Access)

  select * from book where pub_date=’2002-1-7’ (SQL Server)

  提示:

  日期函数to_date不是标准sql文,不是所有的数据库适用,所以大家在使用的时候要参考数据库具体语法

  另外如果是查询传入的变量,则如下:

  strau=request.form("author")

  strsql="select * from book where author=’"&strau&"’"

  如果查询的是数字,则:

  intID=request.form("id")

  strsql="select * from book where id="&intID

  在很多数据库中,如:oracle,上面的语句是可以写成:

  strsql="select * from book where id=‘"&intID&"‘"

  但是字符型一定不能按照数字格式写,需要注意。

  2.添加记录(Insert)

  语法:

  Insert into table(field1,field2,….) Values (value1,value2,….)

  例子:添加一作者是"cancer"的记录入book表:

  insert into book (bookno,author,bookname) values (’CF001’,’cancer’,’Cancer无组件上传程序’)

  同样,如果用到变量就如下:

  strno=request.form("bookno")

  strau=request.form("author")

  strname=request.form("bookname")

  strsql="insert into book (bookno,author,bookname) values (’"&strno&"’,’"&strau&"’,’"&strname&"’)"

  3.用Recordset对象的Addnew插入数据的方法:

  语法:

  rs.addnew

  rs("field1").value=value1

  rs("field2").value=value2

  …

  rs.update

  4.修改数据记录(Update)

  语法:

  update table set field1=value1,field2=value2,…where fieldx=valuex

  例子:

  update book set author=’babycrazy’ where bookno=’CF001’

  如果用到变量就如下:

  strno=request.form("bookno")

  strau=request.form("author")

  strsql="update book set author=’"&strau&"’ where bookno=’"&strno"’"

  5.Recordset对象的Update方法:

  语法:

  rs("field1").value=value1

  rs("field2").value=value2

  …

  rs.update

  注意:使用语法3和语法5的时候,一定要注意字段的类型(尤其是日期型)一致,否则出错的几率非常的高。

  例子:

  strno=request.form("bookno")

  strau=request.form("author")

  set adocon=server.createobject("adodb.connection")

  adocon.open "Driver={Microsoft Access Driver(*.mdb)};DBQ=" & _

  Server.Mappath=("/cancer/cancer.mdb")

  strsql="select * from book where bookno=’"&strno&"’"

  set rs=server.createobject("adodb.recordset")

  rs.open strsql,adconn,1,3

  if not rs.eof then ’如果有此记录的话

  rs("author").value=strau

  rs.update

  end if

  rs.close

  set rs=nothing

  adocon.close

  set adocon=nothing

  6.删除一条记录(Delete)

  语法:

  Delete table where field=value

  例子:删除book表中作者是cancer的记录

  delete book where author=’cancer’

  (注意:如果book表中author字段的值为cancer的记录有多条,将会删除所有author为cancer的记录)

  好了,学会了用这些操作,大家在用asp操作数据库的时候,该是没有什么问题了。

  准备工作:

  1.安装OCA。运行Developer的安装盘,选择自定义安装,选择Oracle Open Client Adapter for ODBC安装。

  2.在数据源(ODBC)中添加DSN。控制面板->管理工具->数据源(ODBC),选择“用户DSN”,添加要进行操作的Access的文件。在“高级”选项里,填上“登录名称”和“密码”(很重要,在程序中会用到)。

  下面以实际例子来说明:

  假设在Oracle中和Access中都有一个student表,表中字段相同(name char(10) ,age number(2)),在准备工作2中的“数据源名”为test,“登录名称”和“密码”都为user。

  下面为从Oracle导出到Access的procedure:

以下是引用片段:
  PROCEDURE oracle_to_access IS
  connection_id EXEC_SQL.ConnType;
  action_cursor EXEC_SQL.CursType;
  ignore PLS_INTEGER;
  t_name student.name%type;
  t_age student.age%type;
  cursor temp_cursor is select * from student;
  BEGIN
  connection_id:= EXEC_SQL.OPEN_CONNECTION(‘user/user@odbc:test‘);
  action_cursor := EXEC_SQL.OPEN_CURSOR(connection_id);
  EXEC_SQL.PARSE(connection_id, action_cursor,‘delete * from student‘);
  ignore := EXEC_SQL.EXECUTE(connection_id, action_cursor);
  EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor);
  open temp_cursor;
  export_count := 0;
  action_cursor := EXEC_SQL.OPEN_CURSOR(connection_id);
  EXEC_SQL.PARSE(connection_id, action_cursor,‘INSERT INTO student(name,age) values(:1,:2)‘);
  loop
  fetch temp_cursor into t_name,t_age;
  exit when temp_cursor%notfound;
  EXEC_SQL.BIND_VARIABLE(connection_id,action_cursor, ‘:1‘, t_name);
  EXEC_SQL.BIND_VARIABLE(connection_id,action_cursor, ‘:2‘, t_age);
  ignore := EXEC_SQL.EXECUTE(connection_id, action_cursor);
  end loop;
  close temp_cursor;
  EXEC_SQL.PARSE(connection_id, action_cursor,‘commit‘);
  ignore := EXEC_SQL.EXECUTE(connection_id,action_cursor);
  EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor);
  EXEC_SQL.CLOSE_CONNECTION(connection_id);
  EXCEPTION
  WHEN EXEC_SQL.PACKAGE_ERROR THEN
  IF EXEC_SQL.LAST_ERROR_CODE(connection_id) != 0 THEN
  message(‘数据导出至ACCESS失败: ‘ || TO_CHAR(EXEC_SQL.LAST_ERROR_CODE(connection_id)) || ‘: ‘ || EXEC_SQL.LAST_ERROR_MESG(connection_id));
  END IF;
  IF EXEC_SQL.IS_CONNECTED(connection_id) THEN
  IF EXEC_SQL.IS_OPEN(connection_id,action_cursor) THEN
  EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor);
  END IF;
  EXEC_SQL.CLOSE_CONNECTION(connection_id);
  END IF;
  END;
  下面为从Access导出到Oracles的procedure:
  PROCEDURE Access_to_oracle IS
  connection_id EXEC_SQL.ConnType;
  action_cursor EXEC_SQL.CursType;
  ignore PLS_INTEGER;
  t_name student.name%type;
  t_age student.age%type;
  BEGIN
  connection_id := EXEC_SQL.OPEN_CONNECTION(‘user/user@odbc:test‘);
  action_cursor := EXEC_SQL.OPEN_CURSOR(connection_id);
  delete from student;
  EXEC_SQL.PARSE(connection_id, action_cursor,‘select name,age from student‘);
  ignore := EXEC_SQL.EXECUTE(connection_id, action_cursor);
  exec_sql.define_column(connection_id,action_cursor,1,t_name,10);
  exec_sql.define_column(connection_id,action_cursor,2,t_age);
  ignore := EXEC_SQL.EXECUTE(connection_id, action_cursor);
  while(exec_sql.fetch_rows(connection_id,action_cursor)>0)
  loop
  exec_sql.column_value(connection_id,action_cursor,1,t_name);
  exec_sql.column_value(connection_id,action_cursor,2,t_age);
  insert into test(name,age) values(t_name,t_age);
  end loop;
  commit;
  EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor);
  EXEC_SQL.CLOSE_CONNECTION(connection_id);
  EXCEPTION
  WHEN EXEC_SQL.PACKAGE_ERROR THEN
  IF EXEC_SQL.LAST_ERROR_CODE(connection_id) != 0 THEN
  message(‘数据导入至ORACLE失败: ‘ || TO_CHAR(EXEC_SQL.LAST_ERROR_CODE(connection_id)) || ‘: ‘ || EXEC_SQL.LAST_ERROR_MESG(connection_id));
  END IF;
  IF EXEC_SQL.IS_CONNECTED(connection_id) THEN
  IF EXEC_SQL.IS_OPEN(connection_id,action_cursor) THEN
  EXEC_SQL.CLOSE_CURSOR(connection_id,action_cursor);
  END IF;
  EXEC_SQL.CLOSE_CONNECTION(connection_id);
  END IF;
  END;

  注意:EXEC_SQL.BIND_VARIABLE中绑定的变量只能是以下三种类型:NUMBER,DATE,VARCHAR2。对于Access中的“是/否”的布尔型变量,可以用NUMBER类型的1和0来表示。如果Access中的表名或者字段名中有空格,在写SQL语句的时候可以用双引号把表名或者字段名包括起来,如:本例中如果Access中表名为student detail,字段名分别为student name和student age,那插入数据的SQL语句为:insert into “student detail”(“student name”,”student age”) values(:1,:2).

作为一个Linux管理员,防御病毒,间谍程序, rootkit等非常重要.
下面为你列举了10款Linux安全工具.

手动修改方法,现将安装程序中的Config.xml解压出来,如果使用了虚拟光驱,直接复制出来便可,专业版和企业版路径有所不同:

专业版是ProPlus.WWConfig.xml

企业版是Enterprise.WWConfig.xml

以下表示为XXXX.WWConfig.xml

可以参考官方网页

我们用记事本打开Config.xml,找到以下一行

PS多出来的空格不用理会因为网页无法显示

使用正确有效的序号取代上述"BCDFGHJKMPQRTVWXY2346789B"引号内部分,并去除后变成以下格式:

其他文件不做修改,仅仅修改Config.xml即可。

然后使用UltraISO等编辑光盘映像的工具将修改后的Config.xml替换掉原来的Config.xml,保存或者刻盘后便可达到免输序列号!