📄 pb.txt
字号:
几个与PB连接数据库相关的问题
1.Power script 语言里的事务处理对象怎么理解
PowerBuilder程序与数据库之间传递信息的一个结构变量,共有15个成员.你可以详细列表它的所有成员看看它的组成.PB的应用程序会初始化一个全局的结构体变量,SQLCA,当然你也可以自定义一个自己的事务对象.
1 DBMS string 所使用的数据库管理系统的名字,如Sybase,Oracle,ODBC。
2 Database string 要连接的数据库名字。
3 UserID string 连接数据库所用的用户名。有的DBMS不需要此项。
4 DBPass string 用户连接数据库的口令。
5 Lock string 这是数据库的保护级别,一般不必给出。
6 LogID string 登录到数据库服务器上的用户名,有的DBMS不需要此项,但Sybase和Oracle需要指定这个参数。
7 LogPass string 登录到数据库服务器上的用户口令。这个属性可设可不设,但Sybase和Oracle需要指定口令。
8 ServerName string 数据库服务器名。
9 AutoCommit boolean 指定是否将数据库设置成自动提交所有事务。默认是False,也就是说,必须在应用程序中进行事务管理,并在适当的时候对数据库提交事务。如果选择True,则每个事务都由系统自动提交。
10 DBParm string 用于向数据库传递特殊信息的属性。
11 SQLCode long 指示最近一次SQL操作失败或成功。它的取值为: 返回结果 0 无错误。 -1 出现一个错误。 100 没有检索到数据。
12 SQLNRows long 最近一次SQL操作影响的行数,数据库不同其含义也不同。
13 SQLDBCode long 数据库错误代码。不同的数据库的含义不同。
14 SQLErrText string 相应于SQLDBCode属性中错误码的文字说明。
15 SQLReturnData string 返回DBMS执行SQL的附加信息,不同的DBMS其值不同。
2.我常见到做好的PB程序使用.ini文件来控制与数据库连接,可以方便的进行应用程序移植只需修改其中与数据库连接参数即可,我想问这些.ini文件只能使用手工编写吗,我见到很多.ini文件参数极多不象手写好象是机器生成的,不知道如何生成啊?请大家指教
1、其实PB中在新建---点TOOL----FILE EDIT 可以生成(编辑)INI文件。最直接就是工具栏中的EDIT图标。
2、机器生成代码是:点DATABASE图标-----选择连接方式。如:选 MSS MICROSOFT SQL SERVER 右键-NEW PROFILE 按要求填定一些参数后在--PREVIEW中可以看到代码,把它复制到INI文件中就行了。
3.编程经验--PB数据库连接
作者:郭洪建 无法确定网上来源,如有准确首发,请与本站联系
通过这些年的信息系统开发经验,使我对POWERBUILDER的理解更进一步,最近在开发某子系统模块时,遇到了一个奇怪的问题,这里给大家介绍一下.
通常在使用PB和数据库管理系统(DBMS)连接时,使用两种方式:
一、开放数据源接口(ODBC)连接
ODBC是通过支持美国微软公司开放服务结构(WOSA,Windows Open Services Architecture)中的一部分.在PB 中通过配置 SQLCA.DBMS=‘ODBC’对象的属性可使应用程序通过ODBC连接到数据库。
ODBC的具体配置包含了数据源、驱动程序类型、缓冲池等各种细节参数。
例子:
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm="ConnectString='DSN=xxx_dsn;UID=xxx;PWD="',ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"
二、专用数据库接口
每个数据库管理系统(DBMS)均提供相应的客户端驱动,为了更好的服务于数据库。
在这里我们使用的是Microsoft sqlserver 2000 的客户端程序。通过设置 SQLCA.DBMS ="MSS Microsoft SQL Server" 使客户端通过专用数据库接口连接到数据库。
该类接口的参数配置除了服务器名、数据库名、LogId、LogPass外还包含了连接协议等用户验证方式等,可通过服务器端或客户端的配置程序进行配置。
SQLCA.dbms= "MSS Microsoft SQL Server" //接口类型
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),并把它 PB与ASA数据库连接问题!
一.连接步骤
1.添加数据源。WINDOWS98中----我的电脑---控制面版----ODBC数据源32位-----系统DSN---添加---选择你使用的数据库
2.在工具条上点击DB PROFILE 选择已建立好的数据库连接,单击EDIT在弹出的对话框中选PREVIEW里面就是连接数据库的语句,COPY就OK了。
二.DB_profile写法(以lin.com的tax例程为例)
http://down.laozang.com/lin/code/tax.zip
tax.ini
[Database]
DBMS=ODBC
Database=test
DbParm=connectstring='dsn=sybase_lin;UID=dba;PWD=sql'
三.打包所需文件
参看以下文章:
http://www.laozang.com/pbbbs/htm_data/12/0505/233.html
四.容易出现的问题及解决方法
导致ASA数据库无法连接的问题有以下几种:
1、ODBC配置错误。没有配置数据源,数据库的用户名或口令错误等都会导致数据库无法连接。
解决的办法:检查数据源的配置,如果没有在ODBC中配置数据源则按照向导添加数据源即可;口令错误只需改为正确的即可。
2、连接时提示LOG文件错误。这样的问题大多出现在重装系统后、源码移植到其他系统、数据库文件路径改变之后。
解决的办法:在创建ASA数据库的时候不创建LOG文件,如果已经创建了LOG文件则可以利用PB自带的工具Sybase central来去掉LOG文件和数据库文件的关联。操作步骤如下:
a)启动Sybase central在左边的树型目录中选择Utilities;
b)双击右边出现的条目中的change log file settings,直接next;
c)点Browse选择需要去除log文件的数据库文件,选好后next;
d)这里你会看到一些数据库的信息,log文件名,文件大小等。next;
e)去掉Maintin the following transaction log file前面的对勾,Finish;
f)配置ODBC连接数据库就可以了。
3、数据库文件损坏。此类错误一般不常见,可能由于病毒破坏或误操作引起。
解决的办法:如果以前有备份用备份文件覆盖原文件即可,如果没有备份文件就只能重新建库了!
PB8如何使用OLE DB练到ASA数据库
(本文来自sybase网站 翻译 by 金色年华)
原文出处:
http://www.sybase.com.cn/cn/content/support/exp_jszc_pb_dbms_00017.htm
Connecting to ASA Server (7.01 GA) via OLE DB in PowerBuilder 8
Adaptive Server Anywhere includes an OLE DB provider named ASAProv. One of the features of ASAProv (dboledb7.dll) is that you do not have to deploy ODBC. In other words, you can connect to an ASA database either via OLE DB or via OLE DB/ODBC bridge.
在pb中通过OLE DB连接到ASA数据库的步骤如下:
在命令提示符下键入如下命令,启动 ASADEMO:
dbsrv7 asademo -x tcpip -n asademo
("asademo" - 你选择运行的数据库. 确定你没有正在运行一个同名的数据库,否则会出错)
有两个方法通过 OLE DB 连接到 ASA Server:
1) OLE DB/ODBC bridge
对于这种连接,你必须在数据库参数中,指定有效的 ODBC 数据源,连接的脚本如下:
// Profile asa_oledb
SQLCA.DBMS = "OLE DB"
SQLCA.LogPass = "sql"
SQLCA.LogId = "dba"
SQLCA.AutoCommit = False
SQLCA.DBParm = "PROVIDER='ASAProv',DATASOURCE='asa'"
2) OLE DB (不需要配置 ODBC)
你可以通过一个扩展名为.udl的单独的文件,提供连接信息,在OLE DB中访问数据.这个文件与 Microsoft DataLink (.udl) file 类似. 你必须在系统中安装 Datalink API 以便于创建和使用 .udl 文件.
创建 .udl文件的方法:
在当前目录里的空白处单击鼠标右键,选择新建文件,选择 Microsoft Data Link.如果没有创建 Microsoft Data Link 的选项,需要创建一个文本文件,然后更改扩展名为 .udl.双击这个文件,添加连接信息.详情请访问msdn.microsoft.com 搜索 Data Link(此处原文有乱码,具体内容不详).
在pb中使用 .udl 文件时,要确认在数据库中已经创建了 Catalog Tables (由pbcat...名字开头,然后 【讨论】pb连接MS SQL Server问题!
一.连接步骤
1)服务器安装SQL Server并启动,创建数据库。
2)客户机安装SQL Server客户端。
3)启动PB,配置数据源描述(通过直连接口,不建议用ODBC)。
4)连接。
二.DB_profile的写法
在ini文件里设置
[Database]
DBMS=MSS Microsoft SQL Server 6.x
Database=databasename
UserId=
LogID=
DatabasePassword=
LogPass=
ServerName=
AutoCommit=False
在程序里用profilestring读取
附加资料:ms sql server 配置文件设置
ms sql server 配置文件设置:
dbms="mss"//只须在*.ini文件中用这个代码便告诉pb使用的ms sql server
Database:所用数据库
LogId:sql server的登陆账号
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -