PB与各种数据链接Word格式文档下载.docx
- 文档编号:16959451
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:28
- 大小:34.98KB
PB与各种数据链接Word格式文档下载.docx
《PB与各种数据链接Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《PB与各种数据链接Word格式文档下载.docx(28页珍藏版)》请在冰豆网上搜索。
点DATABASE图标-----选择连接方式。
如:
选MSSMICROSOFTSQLSERVER右键-NEWPROFILE按要求填定一些参数后在--PREVIEW中可以看到代码,把它复制到INI文件中就行了。
3.编程经验--PB数据库连接
通常在使用PB和数据库管理系统(DBMS)连接时,使用两种方式:
一、开放数据源接口(ODBC)连接
ODBC是通过支持美国微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中的一部分.在PB中通过配置
SQLCA.DBMS=‘ODBC’对象的属性可使应用程序通过ODBC连接到数据库。
ODBC的具体配置包含了数据源、驱动程序类型、缓冲池等各种细节参数。
例子:
SQLCA.DBMS="
ODBC"
SQLCA.AutoCommit=False
SQLCA.DBParm="
ConnectString='
DSN=xxx_dsn;
UID=xxxWD="
'
ConnectOption='
SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'
"
二、专用数据库接口
每个数据库管理系统(DBMS)均提供相应的客户端驱动,为了更好的服务于数据库。
在这里我们使用的是Microsoftsqlserver2000的客户端程序。
通过设置SQLCA.DBMS="
MSSMicrosoftSQLServer"
使客户端通过专用数据库接口连接到数据库。
该类接口的参数配置除了服务器名、数据库名、LogId、LogPass外还包含了连接协议等用户验证方式等,可通过服务器端或客户端的配置程序进行配置。
SQLCA.dbms="
//接口类型
SQLCA.database="
master"
//数据库
SQLCA.userid="
SQLCA.dbpass="
SQLCA.logid="
sa"
SQLCA.logpass="
xxxx"
SQLCA.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数据库连接步骤
1.添加数据源。
在WINDOWS中点击我的电脑,选择控制面版,选择ODBC数据源32位,选择系统DSN,点击"
添加"
然后选择你使用的数据库.
2.在工具条上点击DBPROFILE选择已建立好的数据库连接,单击EDIT在弹出的对话框中选PREVIEW
里面就是连接数据库的语句,直接COPY就OK了。
二.ASADB_profile写法(以的tax例程为例)
tax.ini
CODE:
[Database]
DBMS=ODBC
Database=test
DbParm=connectstring='
dsn=sybase_lin;
UID=dbaWD=sql'
[Copytoclipboard]
三.打包所需文件
参看以下文章:
[url]
四.容易出现的问题及解决方法
导致ASA数据库无法连接的问题有以下几种:
1、ODBC配置错误。
没有配置数据源,数据库的用户名或口令错误等都会导致数据库无法连接。
解决的办法:
检查数据源的配置,如果没有在ODBC中配置数据源则按照向导添加数据源即可;
口令错误只需改为正确的即可。
2、连接时提示LOG文件错误。
这样的问题大多出现在重装系统后、源码移植到其他系统、数据库文件路径改变之后。
在创建ASA数据库的时候不创建LOG文件,如果已经创建了LOG文件则可以利用PB自带的工具Sybase
central来去掉LOG文件和数据库文件的关联。
操作步骤如下:
a)启动Sybasecentral在左边的树型目录中选择Utilities;
b)双击右边出现的条目中的changelogfilesettings,直接next;
c)点Browse选择需要去除log文件的数据库文件,选好后next;
d)这里你会看到一些数据库的信息,log文件名,文件大小等。
next;
e)去掉Maintinthefollowingtransactionlog
file前面的对勾,Finish;
f)配置ODBC连接数据库就可以了。
3、数据库文件损坏。
此类错误一般不常见,可能由于病毒破坏或误操作引起。
如果以前有备份用备份文件覆盖原文件即可,如果没有备份文件就只能重新建库了!
PB8如何使用OLEDB练到ASA数据库
ConnectingtoASAServer(7.01GA)viaOLEDBinPowerBuilder8
AdaptiveServerAnywhereincludesanOLEDBprovidernamedASAProv.
OneofthefeaturesofASAProv(dboledb7.dll)isthatyoudonot
havetodeployODBC.Inotherwords,youcanconnecttoanASA
databaseeitherviaOLEDBorviaOLEDB/ODBCbridge.
在pb中通过OLEDB连接到ASA数据库的步骤如下:
在命令提示符下键入如下命令,启动ASADEMO:
dbsrv7asademo-xtcpip-nasademo
("
asademo"
-你选择运行的数据库.确定你没有正在运行一个同名的数据库,否则会出错)
有两个方法通过OLEDB连接到ASAServer:
1)OLEDB/ODBCbridge
对于这种连接,你必须在数据库参数中,指定有效的ODBC数据源,连接的脚本如下:
//Profileasa_oledb
OLEDB"
SQLCA.LogPass="
sql"
SQLCA.LogId="
dba"
SQLCA.DBParm="
ROVIDER='
ASAProv'
DATASOURCE='
asa'
2)OLEDB(不需要配置ODBC)
你可以通过一个扩展名为.udl的单独的文件,提供连接信息,在OLEDB中访问数据.这个文件与MicrosoftDataLink
(.udl)file类似.你必须在系统中安装DatalinkAPI以便于创建和使用.udl文件.
创建.udl文件的方法:
在当前目录里的空白处单击鼠标右键,选择新建文件,选择MicrosoftDataLink.如果没有创建MicrosoftData
Link的选项,需要创建一个文本文件,然后更改扩展名为
.udl.双击这个文件,添加连接信息.详情请访问搜索Data
Link(此处原文有乱码,具体内容不详).
在pb中使用.udl文件时,要确认在数据库中已经创建了CatalogTables
(由pbcat...名字开头,然后用这几张表存放一些PB中的信息,如果这几张表无法创建,就会出现出错信息).你可以通过连接到系统中已有的ODBC
数据源.如果这些表不存在,就会提示CatalogTables没有被创建.
用以下信息来创建.udl文件:
ProviderTab:
Select"
AdaptiveServerAnywhereProvider"
ConnectionTab:
Location:
eng=asademo;
dbn=asademo;
Links=TCPIP{};
Selectradiobuttonfor
一.连接步骤
1)服务器安装SQLServer并启动,创建数据库。
2)客户机安装SQLServer客户端。
3)启动PB,配置数据源描述(通过直连接口,不建议用ODBC)。
4)连接。
二.DB_profile的写法
在ini文件里设置
DBMS=MSSMicrosoftSQLServer6.x
Database=databasename
UserId=
LogID=
DatabasePassword=
LogPass=
ServerName=
AutoCommit=False
在程序里用profilestring读取
附加资料:
mssqlserver配置文件设置
mssqlserver配置文件设置:
dbms="
mss"
//只须在*.ini文件中用这个代码便告诉pb使用的mssqlserver
Database:
所用数据库
LogId:
sqlserver的登陆账号
LogPass=口令
servername:
允许数据库服务器连接的计算机名
autocommit:
控制pb是工作在事务处理范围内还是工作在事务处理范围外
dbparm:
dbms的专用连接参数
以下参数:
language:
在显示错误消息和日期格式时指定要使用的语言,在服务器上必须设置该直.
lock:
事务处理隔离层
log:
文本和图像数据的更新是否应该纪录到事务日志中.
systemprocs:
系统存储过程和用户定义的存储过程是否显示在各种各样的pb画板中.
pbcatalogowner:
pb存储中表的缺省者.
async:
允许在服务器上进行同步操作.0:
同步,1:
异步
dbgettime:
当async=1时,使用该参数设置用户在检索行时pb等待来自pb的响应的秒数.
cursorlock:
release和cursorscroll参数一起使用可设置光标的锁定选项.lock,opt,optval,readonly
cursorscroll:
设置光标的滚动选项.
staticbind:
控制pb是否在检索数据前获取dbms中的结果集描述.
dbtextlimit:
控制返回的文本字段的最大长度而不用将文本作为二进制大型数据对象来处理.
appname:
设置连接时所使用的应用程序名.
host:
设置连接似的工作站名.
packetsize:
设置使服务器向pb传送数据时所设置的包大小.
secure:
设置是否想使用winnt集成逻辑安全性和安全sqlserver连接缺省0使用标准安全性,1集成安全性.
PowerBuilder与Oracle7.3的连接
PowerBuilder与Oracle的连接
PowerBuilder(PB)和Oracle分别是前端开发工具和RDBMS的主流产品。
PB提供了两种与Oracle连接的接口:
PowerSoft内置的数据库接口(Native
Database
Interface)和ODBC接口。
本文介绍使用PB6.0内置Oracle接口的方法,包括数据描述文件的设置、存储过程的调用和存储过程作为数据窗口数据源的操作方法等内容,使用的RDBMS的Oracle
7.3。
PowerBuilder与Oracle的连接
假定已安装Oracle客户端应用程序。
可用Sqlplus或Tnsping等是否能连接到Oracle数据库,确定在SQLNET配置文件中使用的数据库别名(Database
Alias,又称服务器名,Server
Name)。
如有疑问,可在Oracle客户端程序目录下tnsname.ora文件中找到。
另外保证搜索路径已包括SQLNET应用程序的安装目录(如C:
\ORAWIN95\BIN)。
进入PB的DatabaseProfiles画笔,可看到所有已安装的数据库接口(PB6.0缺省安装的是Oracle
7.3版的接口,如使用低版本的Oracle,需在安装时指定),选择“O73Oracle
7.3”,点击“New”按钮,进入DatabaseProfileSetup对话框。
在“Connection”页输入下列信息:
ProfileName:
为该DatabaseProfile起一个有意义的名称;
ServerTNS:
ServerName,其中ServerName为上述数据库别名(服务器名),如@TNS:
ORA73;
LoginID:
Oracle数据库中实际的用户名,由于PB初次连接到数据库时要自动建立五个系统表(PowerBuilderCatalogTableBCATTBL,PBCATCOL,PBCATEDT,PBCATFMT,PBCATVLD,存储表的扩展属性),因此第一个连接到Oracle的用户必须具有建表、给PUBLIC角色授权等权限。
例如可用SYSTEM用户进行第一次连接,此后的连接对用户则无特殊要求;
Password:
该用户的口令。
设置上述内容后,即可连上Oracle。
为优化数据库连接,还可设置下列选项:
PromptforDatabaseInformation:
连接时是否提示用户输入用户名和口令;
GenerateTrace:
启动DB跟踪工具,跟踪连接;
ThreadSafe:
开发需要多线程环境支持的分布式应用时,选择该项。
缺省为未选,适用于非分布应用;
PBDBMS:
与存储过程调用方式有关的参数。
Oracle为7.2或更高版本时,清除该选项,此时带IN
OUT参数的存储过程可作为数据窗口数据源。
7.2版本以下,选择该项,调用PBDBMS.Put-Line建立存储过程的SQL语句,缺省是选中;
CommitonDisconnect:
断开连接时,指定提交或回退未提交的事务;
CaseSensitive:
连接的Oracle服务器是否区分大小写。
注意该项选中时,所有主键、包含主键的表名、外键须全为大写字符。
PowerBuilderCatalogTablesOwner:
指定拥有PB系统表的用户,缺省为“SYSTEM”。
如果要使用多种显示格式或有效性规则,可以在不同的用户下建立几套系统表;
TableCriteria:
指定满足哪些条件的表、视图和同义词可在“SelectTables”对话框中显示出来。
例如DEV用户下销售子系统的表都以SALE开头,则可以用SALE%、DEV、“TABLE”、“VIEW”指定只显示DEV用户以SALE开头的表和视图;
Asynchronous:
选择该项,可在一个复杂的SQL语句执行过程中,返回第一行结果前,切换到其他操作;
NumberofSecondstoWait:
若上一项选中,还可进一步通过该项指定检索数据时,等待数据库响应的时间;
RetrieveBlockingFactor:
决定数据窗口对象一次可从数据库取出的记录数;
NumberofSQLStaments
Cached:
PB可将数据窗口对象产生的SQL语句和嵌入式SQL语句保存在SQL语句缓冲区,该参数指定缓冲区为PB保留的SQL语句数目。
该数值可由下式计算:
SQLCache=服务器OPEN—CURSORS数-5(保留的游标数)-本连接预期使用的最大游标数;
DisableBind:
指定是否将输入变量与SQL语句绑定,此参数影响PB为数据窗口对象生成INSERT语句的方式;
StaticBind:
数据窗口对象检索数据前是否检测SELECT语句的合法性;
在Syntax页,还可指定日期、时间的格式等。
在Preview页可查看Database
Profile设置对应的PowerScript写法。
Oracle存储过程的使用
归纳起来PB6.0中调用Oracle存储过程有以下四种方法。
方法一:
以关键字RPCFUNC声明存储过程;
方法二:
以DECLAREPROCEDURE语句声明存储过程;
方法三:
以动态SQL语句实现;
方法四:
调用函数PBDBMS.Put-Line。
一般情况下,方法一能得到较好的运行效率和更完善的功能。
因此推荐使用方法一。
但是某些类型的存储过程只能使用其他方法。
以下重点介绍方法一和方法二。
两种方法比较起来,有以下几点主要区别:
1)方法一适用于具有IN、OUT和INOUT参数的存储过程,而方法二仅支持IN和OUT参数,不支持INOUT参数;
2)方法一对参数的数目无限制,方法二最多支持255个参数;
3)方法一不支持记录(Recorder)的传递,方法二可传递和接收记录。
方法一操作步骤:
1)在用户对象画笔中创建一个Class-Standard类型的,从Transaction继承的用户对象。
2)在此用户对象中,声明LocalExternal
Functions,将存储过程以RPCFUNC关键字声明为外部函数。
在DeclareLocalExternal
Functions对话框中按Procedures按钮选择要调用的后台存储过程,或直接输入类似subroutineTEST(long
id,refstringname)RPCFUNCALIASFOR“DEVTEST”的语句。
例如中DEV
TEST的参数为(idIN
NUMBER,nameINOUTVARCHAR2)。
3)保存该用户对象。
4)在Application画笔中,进入应用属性对话框,在Variable
Types页,将上Transaction用户对象设置为缺省的全局变量SQLCA。
5)脚本中,编码调用相应的外部函数。
形式:
SQLCA函数名(参数)。
如可用“SQLCA
TEST(ln—id,ls—name);
”调用例子中定义的DE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PB 各种 数据 链接