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),并把它存放在应用程序当前路径,或存放在%SYSTEM%下面。
  我在开发中用到了对BLOB类型的数据进行存取,大家都知道POWERBUILDER 对BLOB字段的支持是有限的,每次只能处理32KB的数据块,如果一个文件大于32K必须编写相应的程序进行处理。当时的开发环境是PWOERBUILDER 9.0 + MS SQL SERVER 2000 +WINDOWS2000 。
  当通过ODBC连接数据读取BLOB字段时,通过MESSAGEBOX弹出的字节数,观察到只要超过32K的文件出现,LEN(BLOB)就会出错,始终返回是32K字节的长度。当时很令人费解,随
即怀疑系统问题,检查病毒,重新安装相应的开发环境,结果依旧,这才怀疑到ODBC可能存在问题,因为微软是问题专家,同时也是解决问题的专家。当通过SQLSERVER 专用接口连接后,一切正常。由此证明了ODBC 与专用数据库接口之间存在着一定的问题。
  由此可说明各种同类技术之间的细微差别,可能会给我们带来意想不到的问题。在开发时还需谨慎、全面的考虑所用技术的可靠性。
PB与ASA数据库连接问题!
PB与ASA数据库连接问题!
一.连接步骤
1.添加数据源。WINDOWS98中----我的电脑---控制面版----ODBC数据源32位-----系统DSN---添加---选择你使用的数据库
2.在工具条上点击DB PROFILE 选择已建立好的数据库连接,单击EDIT在弹出的对话框中选PREVIEW里面就是连接数据库的语句,COPY就OK了。
二.DB_profile写法(以lin的tax例程为例)
tax.ini
[Database]
DBMS=ODBC
Database=test
DbParm=connectstring='dsn=sybase_lin;UID=dba;PWD=sql'
三.打包所需文件
四.容易出现的问题及解决方法
导致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、数据库文件损坏。此类错误一般不常见,可能由于病毒破坏或误操作引起。
解决的办法:如果以前有备份用备份文件覆盖原文件即可,如果没有备份文件就只能重新建库了!
在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 搜索 Data Link(此处原文有乱码,具体内容不详).

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。