PB与各种数据链接

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1.Powerscript语言里的事务处理对象怎么理解PowerBuilder程序与数据库之间传递信息的一个结构变量,共有15个成员.你可以详细列表它的所有成员看看它的组成,PB的应用程序会初始化一个全局的结构体变量,SQLCA,当然你也可以自定义一个自己的事务对象.1DBMSstring所使用的数据库管理系统的名字,如Sybase,Oracle,ODBC。2Databasestring要连接的数据库名字。3UserIDstring连接数据库所用的用户名。有的DBMS不需要此项。4DBPassstring用户连接数据库的口令。5Lockstring这是数据库的保护级别,一般不必给出。6LogIDstring登录到数据库服务器上的用户名,有的DBMS不需要此项,但Sybase和Oracle需要指定这个参数。7LogPassstring登录到数据库服务器上的用户口令。这个属性可设可不设,但Sybase和Oracle需要指定口令。8ServerNamestring数据库服务器名。9AutoCommitboolean指定是否将数据库设置成自动提交所有事务。默认是False,也就是说,必须在应用程序中进行事务管理,并在适当的时候对数据库提交事务。如果选择True,则每个事务都由系统自动提交。10DBParmstring用于向数据库传递特殊信息的属性。11SQLCodelong指示最近一次SQL操作失败或成功。它的取值为:返回结果0无错误。-1出现一个错误。100没有检索到数据。12SQLNRowslong最近一次SQL操作影响的行数,数据库不同其含义也不同。13SQLDBCodelong数据库错误代码。不同的数据库的含义不同。14SQLErrTextstring相应于SQLDBCode属性中错误码的文字说明。15SQLReturnDatastring返回DBMS执行SQL的附加信息,不同的DBMS其值不同。2.我常见到做好的PB程序使用.ini文件来控制与数据库连接,可以方便的进行应用程序移植只需修改其中与数据库连接参数即可,我想问这些.ini文件只能使用手工编写吗,我见到很多.ini文件参数极多不象手写好象是机器生成的,不知道如何生成啊?请大家指教1、其实PB中在新建---点TOOL----FILEEDIT可以生成(编辑)INI文件。最直接就是工具栏中的EDIT图标。2、机器生成代码是:点DATABASE图标-----选择连接方式。如:选MSSMICROSOFTSQLSERVER右键-NEWPROFILE按要求填定一些参数后在--PREVIEW中可以看到代码,把它复制到INI文件中就行了。3.编程经验--PB数据库连接通常在使用PB和数据库管理系统(DBMS)连接时,使用两种方式:一、开放数据源接口(ODBC)连接ODBC是通过支持美国微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中的一部分.在PB中通过配置SQLCA.DBMS=‘ODBC’对象的属性可使应用程序通过ODBC连接到数据库。ODBC的具体配置包含了数据源、驱动程序类型、缓冲池等各种细节参数。例子:SQLCA.DBMS=ODBCSQLCA.AutoCommit=FalseSQLCA.DBParm=ConnectString='DSN=xxx_dsn;UID=xxxWD=',ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'二、专用数据库接口每个数据库管理系统(DBMS)均提供相应的客户端驱动,为了更好的服务于数据库。在这里我们使用的是Microsoftsqlserver2000的客户端程序。通过设置SQLCA.DBMS=MSSMicrosoftSQLServer使客户端通过专用数据库接口连接到数据库。该类接口的参数配置除了服务器名、数据库名、LogId、LogPass外还包含了连接协议等用户验证方式等,可通过服务器端或客户端的配置程序进行配置。SQLCA.dbms=MSSMicrosoftSQLServer//接口类型SQLCA.database=master//数据库SQLCA.userid=SQLCA.dbpass=SQLCA.logid=saSQLCA.logpass=xxxxSQLCA.serverName=.\xxx//服务器名SQLCA.dbparm=CommitOnDisconnect='No'SQLCA.autocommit=false以上介绍的是PB与数据库连接时常用的方法。往往根据不同的应用环境选择连接方式,在单机环境下多采用的是ODBC连接,因为在发行环节上相对要容易些。在网络环境下多采用专用数据库连接,这样可以提高系统的可靠性与执行效率。专用数据库的发行环节往往要配上相应DBMS客户端的动态连接库(DLL),并把它存放在应用程序当前路径,或存放在%SYSTEM%下面。我在开发中用到了对BLOB类型的数据进行存取,大家都知道POWERBUILDER对BLOB字段的支持是有限的,每次只能处理32KB的数据块,如果一个文件大于32K必须编写相应的程序进行处理。当时的开发环境是PWOERBUILDER9.0+MSSQLSERVER2000+WINDOWS2000。当通过ODBC连接数据读取BLOB字段时,通过MESSAGEBOX弹出的字节数,观察到只要超过32K的文件出现,LEN(BLOB)就会出错,始终返回是32K字节的长度。当时很令人费解,随即怀疑系统问题,检查病毒,重新安装相应的开发环境,结果依旧,这才怀疑到ODBC可能存在问题,因为微软是问题专家,同时也是解决问题的专家。当通过SQLSERVER专用接口连接后,一切正常。由此证明了ODBC与专用数据库接口之间存在着一定的问题。由此可说明各种同类技术之间的细微差别,可能会给我们带来意想不到的问题。在开发时还需谨慎、全面的考虑所用技术的可靠性。PowerBuilder与SybaseASA数据库连接问题QUOTE:SybseASA(AdaptiveServerAnywhere)在安装完整版PowerBuilder时可以选择安装,PowerBuilder的例程也是以ASA作为数据库的.一.ASA数据库连接步骤QUOTE:1.添加数据源。在WINDOWS中点击我的电脑,选择控制面版,选择ODBC数据源32位,选择系统DSN,点击添加,然后选择你使用的数据库.2.在工具条上点击DBPROFILE选择已建立好的数据库连接,单击EDIT在弹出的对话框中选PREVIEW里面就是连接数据库的语句,直接COPY就OK了。二.ASADB_profile写法(以lin.com的tax例程为例)tax.iniCODE:[Database]DBMS=ODBCDatabase=testDbParm=connectstring='dsn=sybase_lin;UID=dbaWD=sql'[Copytoclipboard]三.打包所需文件参看以下文章:[url][/url]四.容易出现的问题及解决方法导致ASA数据库无法连接的问题有以下几种:1、ODBC配置错误。没有配置数据源,数据库的用户名或口令错误等都会导致数据库无法连接。解决的办法:检查数据源的配置,如果没有在ODBC中配置数据源则按照向导添加数据源即可;口令错误只需改为正确的即可。2、连接时提示LOG文件错误。这样的问题大多出现在重装系统后、源码移植到其他系统、数据库文件路径改变之后。解决的办法:在创建ASA数据库的时候不创建LOG文件,如果已经创建了LOG文件则可以利用PB自带的工具Sybasecentral来去掉LOG文件和数据库文件的关联。操作步骤如下:a)启动Sybasecentral在左边的树型目录中选择Utilities;b)双击右边出现的条目中的changelogfilesettings,直接next;c)点Browse选择需要去除log文件的数据库文件,选好后next;d)这里你会看到一些数据库的信息,log文件名,文件大小等。next;e)去掉Maintinthefollowingtransactionlogfile前面的对勾,Finish;f)配置ODBC连接数据库就可以了。3、数据库文件损坏。此类错误一般不常见,可能由于病毒破坏或误操作引起。解决的办法:如果以前有备份用备份文件覆盖原文件即可,如果没有备份文件就只能重新建库了!PB8如何使用OLEDB练到ASA数据库ConnectingtoASAServer(7.01GA)viaOLEDBinPowerBuilder8AdaptiveServerAnywhereincludesanOLEDBprovidernamedASAProv.OneofthefeaturesofASAProv(dboledb7.dll)isthatyoudonothavetodeployODBC.Inotherwords,youcanconnecttoanASAdatabaseeitherviaOLEDBorviaOLEDB/ODBCbridge.在pb中通过OLEDB连接到ASA数据库的步骤如下:在命令提示符下键入如下命令,启动ASADEMO:dbsrv7asademo-xtcpip-nasademo(asademo-你选择运行的数据库.确定你没有正在运行一个同名的数据库,否则会出错)有两个方法通过OLEDB连接到ASAServer:1)OLEDB/ODBCbridge对于这种连接,你必须在数据库参数中,指定有效的ODBC数据源,连接的脚本如下://Profileasa_oledbSQLCA.DBMS=OLEDBSQLCA.LogPass=sqlSQLCA.LogId=dbaSQLCA.AutoCommit=FalseSQLCA.DBParm=ROVIDER='ASAProv',DATASOURCE='asa'2)OLEDB(不需要配置ODBC)你可以通过一个扩展名为.udl的单独的文件,提供连接信息,在OLEDB中访问数据.这个文件与MicrosoftDataLink(.udl)file类似.你必须在系统中安装DatalinkAPI以便于创建和使用.udl文件.创建.udl文件的方法:在当前目录里的空白处单击鼠标右键,选择新建文件,选择MicrosoftDataLink.如果没有创建MicrosoftDataLink的选项,需要创建一个文本文件,然后更改扩展名为.udl.双击这个文件,添加连接信息.详情请访问msdn.microsoft.com搜索DataLink(此处原文有乱码,具体内容不详).在pb中使用.udl文件时,要确认在数据库中已经创建了CatalogTables(由pbcat...名字开头,然后用这几张表存放一些PB中的信息,如果这几张表无法创建,就会出现出错信息).你可以通过连接到系统中已有的ODBC数据源.如果这些表不存在,就会提示CatalogTables没有被创建.用以下信息来创建.udl文件:ProviderTab:SelectAdaptiveServerAnywhereProviderConnectionTab:Location:eng=asademo;dbn=asademo;Links=TCPIP{};Selectradiobuttonfor一.连接步骤1)服务器安装SQLServer并启动,创建数据库。2)客户机安装SQLServer客户端。3)启动PB,配置数据源描述(通过直连接口,不建议用ODBC)。4)连接。二.DB_profile的写法在ini文件里设置[Database]DBMS=MSSMicrosoftSQLServer6.xDatabase=databasenameUserId=LogID=DatabasePassword=LogPass=ServerName=A

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功