使用Oracle SqlDeveloper遇到的2个常见Java错误及解决办法

用了好长时间的Oracle官方SQL Developer近期在我两位同事的电脑上运行不正常了,起初怀疑是xp系统升级了赛门铁克的杀毒软件造成的,因为我的Win7的系统就没问题,后来帮其中一位同事重新安装了操作系统到Win7,可问题依旧。当然了在重新安装操作系统之前,也尝试搜索Google和Baidu相关的解决办法,尝试过手工修改系统的环境变量,还有在sqldeveloper.config文件增加SetJavaHome参数,都不奏效(也许是我哪里操作有误)。在Win7系统上,我也同时进行了多种测试:

1、通过网页方式在线安装Java6和Java7的客户端,分别测试
2、下载32位的2种Sql Developer版本,一种自带JRE,一种没有
3、下载64位的Sql Developer

都还是不是,分别出现如下错误信息(附截图)

<br/>Unable to launch the Java Virtual Machine Located at path:..\..\jdk\jre\bin\client\jvm.dll<br/>

<br/>Cannot find a J2SE SDK installed at path:....<br/>

期间也出现过如下错误:

[/CODE_LITE]
无法启动此程序,因为计算机丢失MSVCR71.dll。尝试重新安装该程序以解决此问题。
[CODE_LITE]

最终经过不停测试,发现如下解决办法:

1、下载32位的no JRE的SQL Developer版本
2、安装Java6或7的客户端
3、打开网址[URL=http://www.oracle.com/technetwork/java/javase/downloads/index.html]http://www.oracle.com/technetwork/java/javase/downloads/index.html[/URL],手动下载Java Platform (JDK) 6u45 或Java Platform (JDK) 7u21,并安装(默认路径和步骤2的客户端在同一个目录)
4、运行步骤1下载的程序,在弹出的对话框中选择正确的路径(如下图)

选择安装路径:C:\Program Files\Java\jdk1.6.0_43\bin\java.exe,这里的操作系统是XP和Win7 32位,64位的路径请按实际情况选择

这个问题是跟2位同事一起研究才搞定,也感谢他们让我觉得经过几天的思考一下子放松了。

我的ODP.NET开发之路3-ORA-14551: cannot perform a DML operation inside a query

昨天下午写了2个Function,一个是从ERP LN中读出来Item-Purchase BP中的一个指定的Item和BP的BlockingReason,另一个是按照指定的ID从应用系统中读出来Item和BP,从而调用第一个Function返回真正的BlockingReason,在每一个Function中,都有一段如果报错就调用写错误日志的存储过程。在实际的使用中使用:Select Function2(ID) from Dual;,但是老报以下错误:

<br/>ORA-06502: PL/SQL: numeric or value error: character string buffer too small<br/>ORA-06512: at "TROY.ONTRAC_QRS_PKG", line 760<br/>ORA-14551: cannot perform a DML operation inside a query <br/>ORA-06512: at "TROY.COMMON_SYSTEMLOG_PKG", line 43<br/>ORA-06512: at "TROY.COMMON_BAANBRIDGE_PKG", line 339<br/>ORA-01403: no data found <br/>

经过查询,原因是“对数据库有写操作(INSERT、UPDATE、DELETE、CREATE、ALTER、COMMIT)的函数,是无法简单的用SQL来调用的”。按照这篇文章:[URL=http://www.cnblogs.com/pengyq/archive/2008/11/26/1341656.html]ORA-14551: cannot perform a DML operation inside a query [/URL],加上了“自主事务”:PRAGMA AUTONOMOUS_TRANSACTION; ,不过需要注意在Delcare的部分加入“PRAGMA AUTONOMOUS_TRANSACTION;”之后,必须在SQL语句后面加入“COMMIT;”

看如下例子:

<br/>    /*/* RFD #50 20111214 new start Troy Cui */<br/>    PRAGMA AUTONOMOUS_TRANSACTION;<br/>    /*/* RFD #50 20111214 new end Troy Cui */<br/>    BEGIN<br/>    <br/>        select trim(nvl(FirstName, '') || ' ' || nvl(LastName, ''))<br/>          into sDisplayName<br/>          from COMMON_Users<br/>         where UserID = nLoggedByID;<br/><br/>        if (sDisplayName = '') then <br/>            sDisplayName := '- unassigned -';<br/>        end if;<br/>    <br/>        insert into COMMON_SystemLog(LoggedByID, LogDate, LogCategory, LogEntry, AccessLevel, <br/>                                     Source, DataDump, DisplayName)<br/>                              values(nLoggedByID, SYSTIMESTAMP, sLogCategory, sLogEntry, nAccessLevel,<br/>                                     sSource, sDataDump, sDisplayName);<br/>        /*/* RFD #50 20111214 new start Troy Cui */<br/>        COMMIT;<br/>        /*/* RFD #50 20111214 new end Troy Cui */<br/><br/>    END WriteLog;<br/>

我的ODP.NET开发之路3-Oracle Package/Procedure/Function

上周的项目进展比较大,完成了几个重大的功能。这其中涉及到在Oracle中创建新表、序列、索引、触发器、包、存储过程、函数,当然了也在实战中学习了几个.Net的Dataset\Datatable的用法。一直想写,不过项目紧,真没空。这不今天有点时间,但是很多东西又没那么强烈的书写欲望了。

说说今天工作遇到的几个东东吧,第一个是Oracle中的包。不晓得为什么Oracle设计包,并且把存储过程和函数都写在不同的包里,而MSSQL虽然也都有存储过程和函数,但是基本上所有的C#程序调用都是对存储过程的操作。Oracle中的存储过程如果放在包内,C#程序使用“包名.存储过程(变量)”或者“包名.函数(变量)”的形式来访问。

对于创建或者修改包的语法我就不重复了,你可以搜索一下。不过有一点我需要分享给大家,在Function中,如果对变量赋值,写法可不一样。

MSSQL中一般写成

<br/>@BlockingReason nvarchar(50)<br/><br/>Select @BlockingReason = value from table where ...<br/>

而在Oracle中是Select value into variable from table where …,看下面的例子

<br/>BlockingReason   varchar2(100);<br/>select trim(nvl(ipbp.t$brea,'')) into BlockingReason<br/>               from baan.ttdipu010301 ipbp  -- item - purchase BP data<br/>              where upper(trim(ipbp.t$item)) = upper(sWAIPartNumber)<br/>                and ipbp.t$otbp =  upper(sBusinessPartnerCode)<br/>                and rownum <=1 order by rownum;<br/>

第二个要分享的是3个很有用的Oracle函数:SUBSTR、DECODE、NVL
SUBSTR(Value,1,5) 取出从Value的第1位开始取5个字符长度
NVL(Value,’a’) 如果Value为Null返回a
DECODE比较复杂,如果你需要针对一个值做很多判断的时候,不用写case了。这个详细的介绍和用法,你搜索一下吧,我解释不清楚。

第三个要分享的,其实是C# .Net的一个Datatable绑定到Dropdownlist的代码,包括了选择值的默认选项

<br/>WAIonTracFailureModes oFailureModes = new WAIonTracFailureModes(_oWorkItem.ApplicationID);<br/><br/>        DataTable dt = oFailureModes.List().Tables[0].Copy();<br/>        DataRow[] drs = dt.Select("ParentID=0");<br/>        foreach (DataRow r in drs)<br/>        {<br/>            //text,value<br/>            WAIonTracFailureModeList.Items.Add(new ListItem(r["Name"].ToString(), r["FailureModeID"].ToString()));<br/>        }<br/><br/>        //WAIonTracFailureModeList.DataSource = oFailureModes.List();<br/>        //WAIonTracFailureModeList.DataTextField = "Name";<br/>        //WAIonTracFailureModeList.DataValueField = "FailureModeID";<br/>        //WAIonTracFailureModeList.DataBind();<br/><br/>        //DataRow[] drs2 = dt.Select("ParentID="+_oWorkItem.FailureModeID);<br/>        DataTable dt2 = oFailureModes.List().Tables[0].Copy();<br/>        DataRow[] drs2 = dt2.Select();<br/>        //<br/>        if (_oWorkItem.FailureModeID != null)<br/>        {<br/>            drs2 = dt2.Select("ParentID=" + _oWorkItem.FailureModeID);<br/>        }<br/><br/>        foreach (DataRow r2 in drs2)<br/>        {<br/>            //text,value<br/>            WAIonTracDetailsOfFailureList.Items.Add(new ListItem(r2["Name"].ToString(), r2["FailureModeID"].ToString()));<br/>        }<br/>

绑定默认/选择值的

<br/>WAIonTracFailureModeList.SelectedIndex = WAIonTracFailureModeList.Items.IndexOf(WAIonTracFailureModeList.Items.FindByValue(_oWorkItem.FailureModeID.ToString()));<br/>        WAIonTracDetailsOfFailureList.SelectedIndex = WAIonTracDetailsOfFailureList.Items.IndexOf(WAIonTracDetailsOfFailureList.Items.FindByValue(_oWorkItem.DetailsOfFailureID.ToString()));<br/>

先写这么多吧,比较乱。另外,昨天买的《涂抹Oracle-三思笔记之一步一步学Oracle》已经到手,目前只知道如何用了,但是“为什么”还不知道,希望这本评价颇高的书能告诉我。

我的ODP.NET开发之路1

从Oracle下载了ODTwithODAC112021.zip的安装文件,是Oracle11g的,因为本来电脑上安装了Oracle 10g的客户端,所以在安装的时候走了一些弯路,后来把Oracle 10g的客户端删掉,接着把ODP.NET也删掉,重启电脑重新安装ODP.NET,然后在默认的C:\app\你的登陆账号\product\11.2.0\client_1\Network\Admin下放置正确的tnsnames.ora文件。打开VS2010后,就能顺利连接Oracle了。

配置64位SQL Server 2008的Linked Server连接64位的Oracle注意事项

到目前为止Windows 2008 64位下面还没有提供Microsoft OLEDB Provider for Oracle,如果要建立Linked Server似乎只有ODBC和Oracle Provider for OLEDB。在我目前的实际操作中ODBC连接方式,使用Open Query查询出来的结果老是少,搜索各大搜索引擎,也没查出来什么原因。只能安装Oracle Provider for OLEDB,我参考了这篇文章《[URL=http://www.mssqltips.com/tipprint.asp?tip=1433]How to setup linked servers for SQL Server and Oracle 64 bit client[/URL]》,但是这篇文章中有几个地方写的并不具体,有几个很重要的地方大家一定要注意。

1、Oracle 10g Release 2 64-bit ODAC software的下载地址:[URL=http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html]http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html[/URL]
要选择64-bit Oracle10g Release 2 ODAC 10.2.0.3 for Windows Itanium ODAC10203IA64.zip – 273 MB (286,676,590 bytes)
2、安装ODAC10203IA64的方法,其实不能从解压缩的stage文件家中直接运行,而是从原始的Oracle Universal Installer进行,选择安装文件位置那里选择ODAC解压缩后的Stage文件夹下的Products.xml配置文件。
3、在添加Linked Server的时候,其实没必要用那个SQL语句,界面化的操作只要选择“Oracle ”然后填写Product Name和Data Source,然后在Security选择指定的账号和密码并输入就行了。

[转帖]国外主流ERP综述

一:功能强劲的SAP

简介:

SAP公司是ERP思想的倡导者,成立于1972年,总部设在德国南部的沃尔道夫市。SAP的主打产品R/3是用于分布式客户机/服务器环境的标准ERP软件,主要功能模块包括:销售和分销、物料管理、生产计划、质量管理、工厂维修、人力资源、工业方案、办公室和通信、项目系统、资产管理、控制、财务会计。R/3适用的服务器平台是:Novell、Netware、NT Server、OS400、Unix ,适用的数据库平台是:IBM DB2、Informix、MS SQL Server、Oracle ,支持的生产经营类型是:按定单生产、批量生产、合同生产、离散型、复杂设计生产、按库存生产、流程型,其用户主要分布在航空航天、汽车、化工、消费品、电器设备、电子、食品饮料等行业。

点评:

R/3的功能涵盖了企业管理业务的各个方面,这些功能模块服务于各个不同的企业管理领域。在每个管理领域,R/3又提供进一步细分的单一功能子模块,例如财务会计模块包括总账、应收账、应付账、财务控制、金融投资、报表合并、基金管理等子模块。SAP所提供的是一个有效的标准而又全面的ERP软件,同时软件模块化结构保证了数据单独处理的特殊方案需求。

目前,排名世界500强的企业,有一半以上使用的是SAP 的软件产品。因R/3的功能比较丰富,各模块之的关联性非常强,所以不仅价格偏高,而且实施难度也高于其他同类软件。R/3适用于那些管理基础较好经营规模较大的企业,普通企业选择R/3时,要充分考虑软件适用性和价格因素。

二:高度集成的Oracle

Oracle公司是全球最大的应用软件供应商,成立于1977年,总部设在美国加州。Oracle主打管理软件产品Oracle Applications R11i是目前全面集成的电子商务套件之一,能够使企业经营的各个方面全面自动化。Oracle企业管理软件的主要功能模块包括:销售定单管理系统、工程数据管理、物料清单管理、主生产计划、物料需求计划、能力需求管理、车间生产管理、库存管理、采购管理、成本管理、财务管理、人力资源管理、预警系统。Oracle适用的服务器平台是:DEC Open VMS、 NT、 Unix、 Windows 95/98,数据库平台是:Oracle,支持的生产经营类型是:按定单生产、批量生产、流程式生产、合同生产、离散型制造、复杂设计生产、混合型生产、按定单设计、按库存生产,其用户主要分布在:航空航天、汽车、化工、消费品、电器设备、电子、食品饮料行业。

点评:

Oracle凭借“世界领先的数据库供应商”这一优势地位,建立起构架在自身数据之上的企业管理软件,其核心优势就在于它的集成性和完整性。用户完全可以从Oracle公司获得任何所需要的企业管理应用功能,这些功能集成在一个技术体系中,而如果用户想从其它软件供应商处获得Oracle所提供的完整功能,很可能需要从多家供应商分别购买不同的产品,这些系统分属于不同供应商的技术体系,由不同的顾问予以实施,影响了各个系统之间的协同性。对于集成性要求较高的企业,Oracle无疑是理想的选择。但企业如果对开放性要求较高,Oracle显然无法胜任。

三:适宜“大批量生产”的JDE

J.D.Edwards公司于1977年在美国科罗拉多州丹福市创立,JDE系统是其提供的一套用于企业商务解决方案的软件产品。JDE系统的模块包含制造业、分销业、财务、人力资源管理,其中制造业部分由产品数据管理、厂房设备维修、车间控制、主生产计划、物料需求计划、能力需求计划等模块所组成;分销业部分由预测、需求计划、库存管理、销售定单处理、销售分析、采购定单处理、分销资源计划、仓库管理、电子数据交换(EDI)模块所组成;财务部分由总分类账和基础财务、财务模式、预算和分配、应收账、应付账、现金账、多国通货账、固定资产等模块组成。

JDE适用的服务器平台有:NT、OS/400、Unix、Digital VMS,适用的数据库平台是:IBM DB2、MS SQL Server、Oracle,支持的生产经营类型是:按定单装配、批量生产、按定单设计、合同生产、离散型、按定单制造、按库存生产、混合型生产、连续型、大批量生产。用户主要分布在汽车、化工、消费品、电器设备、电子、食品饮料、工业品、金属加工、制药业等行业。

点评:

JDE最早是适用于制造业的MRPII系统,后来发展成为适用于制造业、金融、分销、建筑、能源、化工、房地产及公用事业方面的商务软件。虽然JDE的用户遍及世界35个国家和地区,销售额也一直高居世界ERP软件供应商排名前五位,但JDE曾经一度被淡忘,因为它所采用的技术构架和编程技术没有多层客户机/服务器和面向对象编程那么热烈地被人们谈论。

JDE在系统稳定性和运行速度上有优异表现,特别适用于大量生产型的工业企业,而且实施总成本不高。JDE是完全基于IBM AS/400小型机开发的,在其他通用系统上的运行效果不理想。目前JDE也在向其他平台扩展。

四:实现“动态企业建模”的Baan

BAAN是一个为项目型、流程型以及离散型产业供应链提供ERP系统和咨询服务的公司。BAAN的软件家族产品支持企业一系列的业务过程,其中包括:制造、财务、分销、服务和维护业务。此外,BAAN公司还提供了Orgware——一套组织工具和软件工具,它能帮助企业减少实施时间和成本,并能帮助企业实现对系统的不断改进。BAAN ERP 适用的服务器平台是:NT、 OS/400、 Unix、 Windows 95/98、 IBM S390,适用的数据库平台是:IBM DB2、Informix、MS SQL Server、Oracle,支持的生产类型是按定单设计、复杂设计生产,用户主要分布在航空航天、汽车、化工、工业制造等行业。

点评:

BAAN通过Orgware系统件作为企业建模工具,以保证企业灵活运用软件,它强大的功能能满足企业现在的实际需求,也能满足企业将来的需求。Orgware把公司本身的业务处理流程作为输入,以标准的企业模型为参考,很快地配置系统来满足企业的需要和特殊要求。这样,企业的BAAN应用系统的模型就会快速地顺利地被确定下来。

业务流程重组(BPR)不利往往是影响ERP实施的重要因素,BAAN的动态建模思想和技术不仅有利于保障企业成功实施ERP系统,而且便于企业今后依据管理需要重新构建业务框架。业务流程重组有困难或者预计将来业务流程会发生改变的企业,选择BANN会有利于成功实施运用ERP系统。

五:为用户量体裁衣的SSA-BPCS

SSA成立于1981年,其总部设在美国芝加哥。SSA主要向用户提供的BPCS(Business Planningand ControI System商业计划与控制系统)套件包括财务、分销、制造三大部分,能满足企业在这三个管理领域的大部分需要。BPCS适用的服务器平台是:OS/400、Unix,适用的数据库平台是:Informix、Oracle,支持的生产类型是:按定单生产、按库存生产、批量生产、连续型、混合型、离散型,用户主要分布在汽车、化工、消费品、离散型、电器设备、电子、食品饮料、机器制造、金属加工、制药等行业。

点评:

< br/>
SSA的BPCS系统的设计具有巧妙的功能和极大的使用弹性,各模块均包含许多用户自定义参数设计功能,可将系统加以裁剪组合,以符合用户特殊需求。

和BAAN一样,SSA为用户设计了快速实施系统的方案,以减少实施的时间成本和风险成本。由于BPCS强大的自定义功能,使实施BPCS的用户无需放弃原来的工作模版,而是根据用户的实际工作情况来裁剪组合系统,以便短时间内上线运用。“我们的软件是为快速实施所设计”、“我们保持着极短的时间–效益期”成为SSA打动用户的独特卖点。

对于客户化设置要求较多,或者对于实施时间要求较高的企业,采用SSA的BPCS会是一个不错的选择。

六:实现客户价值的SYMIX-SyteLine

Symix成立于1979年,是在微机服务器上开发MRPII软件的第一家软件公司。Symix 提供的软件产品SyteLine套件包含的主要功能模块是:总账、应收款系统、应付款系统、订单管理、采购管理、库存管理、资产管理、预算管理、成本管理、生产计划。适用的服务器平台是:NT,Unix,适用的数据库是:Progress、Oracle,支持的生产类型:按定单生产、按库存生产、离散型生产的企业。用户主要分布在汽车制造、电子电器、机械制造、金属加工等行业。

点评:

以客户为中心的商业模式这几年越来越受到重视,CRM(customer relationship management 客户关系管理)软件因此运应而生,逐步成为企业信息化建设的焦点。虽然CRM这一思想并非Symix确切地提出,但是Symix却将“以客户为中心”的生产经营理念最大程度地融合到软件中。

大多数CRM软件关注的是以客户为中心的营销服务工作,而Symix的CSRP(Customer Synchronized Resource Planning客户同步资源计划)系统更能以客户为导向,系统地组合企业各项生产经营资源,因此Symix自称CSRP是超越ERP的新型管理思想和软件系统。对于外部市场环境变化较快,或者完全根据客户需求生产的企业,选择Symix能较好地实现客户需求拢动式生产。

七:构建虚拟工厂的QAD-MFG/PRO

QAD公司于1979年在美国加州的卡宾特瑞创立,其软件产品MFG/PRO系统包含分销、制造、财务三大类别36个主要功能模块。适用的服务器平台是:NT、Unix,适用的数据库平台是:Progress、Oracle,支持的生产类型是:离散型、连续型、成批生产、备货生产、按订单生产和重复生产,用户主要分布在电子工业、汽车制造、医药工业和消费品工业等行业。

点评:

以戴尔和阿迪达斯为代表的虚拟工厂经营模式,在以信息技术为主的新经济时代有着特殊的经营优势。QAD的供应链管理系统就是用来帮助建立虚拟工厂的,这个“工厂”将涉及的不同研发者、供应者、装配者、包装者和批发者组织起来,使它们与客户要求保持一致,然后工厂在产品上标以统一商标并获得利润。QAD 集成的分布式MFG/PRO系统能运行于虚拟工厂的整个经营管理过程,以便使“工厂”将其客户与他们自己很好地结合起来,然后再与供应商,以及供应商的供应商联系在一起。MFG/PRO系统可以设置成一台机器多个数据库、多台机器单数据库、一台机器分开的数据库、多台机器分散的数据库,这种灵活的数据库配置,可以实现任意数目的用户机同时存取任意数目的数据库服务器,以确保虚拟工厂在不同地区不同信息环境下协同运作。

八:简便实用的四班—Fourth Shift

FOURTH SHIFT(四班)公司成立于1982年,总部位于美国明尼阿波利斯市。Fourth Shift软件包含40多个管理模块,覆盖生产、采购、销售、客户服务等集成子系统。适用的服务器平台是:Novell Netware、NT、Windows 95/98,适用的数据库平台是:MS SQL Server,支持的生产类型主要是离散型、按单生产,也可用于流程式连续生产型企业,用户主要分布在日用消费品、电子电器、计算机行业。

点评:

Fourth Shift是一套适于中小制造企业应用的软件系统,功能虽然不如SAP的软件丰富,但基本符合中小企业在生产管理、物流管理、财务管理等方面的需求,而且具有简便实用、成本低廉、实施期短(一般3—6个月完成实施)等特点。

虽然Fourth Shift在世界的管理软件销售排名不是很*前,但在中国及其它亚太地区的市场表现不俗,这与Fourth Shift符合这些地区大部分企业的实际需求,以及Fourth Shift一直以来在产品和服务本地化方面所做的努力不无关系。

目前Fourth Shift的财务会计系统已经通过中国财政机构符合中国会计管理制度的评审。中小制造企业特别是离散型制造业在选择企业管理软件时,Fourth Shift可以作为首要考虑对象。

九:兼容并蓄的CA—MANMAN/X

CA(Computer Associates)公司是以开发大型机软件起家的软件产品公司。由美籍华人王嘉廉于1976年创立,总部设在美国纽约长岛。

CA的产品家族非常庞大,MANMAN/X是其提供的一个完整的制造业管理系统。该系统由制造、工程、财务、销售与售后服务、系统工具五大部分组成,其中每一部分又由各功能模块构成,例如:制造部分中包含了基础资料、库存管理、计划(MPS,MRP,CRP)管理、采购管理、车间控制和成本会计部分。

MANMAN/X不受工作平台或操作系统环境的限制,适用于Oracle、INGRES等各种关系型数据库并附带专有数据库系统。

点评:

CA软件最大的特点在于兼容并蓄的通用性和开放性。由于开放、模块化结构,MANMAN/X完全独立于计算机软/硬件环境,允许选择能最好工作的平台,适用的数据平台也非常广泛。同时系统能适应用户各种生产经营类型要求,包含了各种制造方法单独的或任何组合的应用,可以满足用户的许多特定需求。MANMAN/X提供的修改菜单和屏幕,以及自动生成应用程序的客户化开发工具,使用户具备了对迅速变化的市场和管理需求作相应调整的能力。

与Oracle 一样,CA提供给企业的是一个全面而完整的管理解决方案,企业办公及经营管理所涉及的软件产品,几乎都能从CA的软件家族中找到。与Oracle不同的是,CA具有软件产品领域的广泛性和软件本身的开放性。CA兼容并蓄的风格不仅体现在软件产品上,而且体现在企业经营上。

在中国,CA正在走本地化的资本和文化融合之路,目前已经和包括联想、安易在内的许多计算机软硬件厂商合作,共同开拓本地市场。由于CA兼容并蓄的风格,使企业选择CA不仅选择了一个开放的软件系统,而且选择了全方位的系统支持和持续发展的保障。有资料称CA是世界第二大独立软件供应商,但在企业管理软件领域,目前CA的表现与SAP、Oracle等“大腕”级软件供应商相比还有差距。

原文:[URL=http://www.xihome.com/bbs/dispbbs.asp?boardID=62&ID=645&page=1]http://www.xihome.com/bbs/dispbbs.asp?boardID=62&ID=645&page=1[/URL]

Web开发中涉及的数据库连结方式

今天开始了解[URL=http://www.riacn.com]RIA[/URL]的一些知识,无意之间看到了一些提问者对数据库连结方式的提问,然后从网络上搜索了一下,整理在这里,希望对新手有帮助。

第一种叫做DSN-less,也就是不用DSN (Data Source Name,数据源名称)的联机方式。
这种方法是通过系统的ODBC驱动程序来连接数据库,ODBC就像翻译人员一样,让我们用同一种沟通方式来指挥不同的数据库,但是它的效率较差一些
ACCESS
“DRIVER={Microsoft Access Driver(*.mdb)};DBQ=数据库的完整路径”
Microsoft SQL数据库
“Driver={SQL Server};Server=服务器名称;Database=数据库名称;uid=登入名称;pwd=密码;”
MySQL数据库
“Driver={mysql};Database=数据库名称;uid=登入名称;pwd=密码;”
Oracle数据库
“Driver={Microsoft ODBC for Oracle};Server=数据库名称;uid=登入名称;pwd=密码;”

第二种叫做OLE DB Connection,OLE DB Connection(OLE DB联机)称为自定义联机字符串方式,它不需经由ODBC联机,效果也比较好

ACCESS
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库的完整路径;User id=登入名称;Password=密码;”
Microsoft SQL数据库
“Provider=SQL OLEDB;Data Source=服务器名称;Initial Catalog=数据库名称;User id=登入名称;Password=密码;”
Oracle数据库
“Provider=OraOLEDB.Oracle;Data Source=数据库名称;User id=登入名称;Password=密码;”

第三种是系统DSN方式,这种对于网络开发应用不大,以前的C/S结构的程序用的较多,比如我原来使用的IERP5.2系统,就是使用了系统DSN,每个客户端都生成一个系统数据源,然后ERP客户端程序调用这个数据源。

以后的开发可能使用最多的是MsSQL和Oracle数据库,同时选择较好的连接方式:OLE DB
1、“Provider=OraOLEDB.Oracle;Data Source=数据库名称;User id=登入名称;Password=密码;”
2、“Provider=SQL OLEDB;Data Source=服务器名称;Initial Catalog=数据库名称;User id=登入名称;Password=密码;”

下一步的计划和发展方向

最近得到了一份Offer,决定了一下步的发展方向和研究领域:
1、数据库方面,以MSSQL为主,渐渐转向Oracle数据库
2、网页设计方面渐渐转入Flash website and Flash game
3、网络编程方面从原来的ASP环境逐渐升级到.net(C#)版本
4、个人职业发展从Designer or Programmer 变化为Team work and Team leader
5、Flash方面着重研究Actionscript2的编程,然后就是基于Database和XML的Flash应用设计
6、系统管理方面开始对Web server\Exchange Server\Ftp Server进行直接的管理和应用
7、英语学习方面,因为的确吃了苦头,坚持每天学习英语,提高英语听说读写能力

这个周末去书店和Dearbook.com逛一下,掏几本好书看看。