当前位置:首页 » 操作系统 » pb开发数据库

pb开发数据库

发布时间: 2022-05-03 22:51:49

A. 近来数据库开发工具哪些比较流行,powerbuilder咋样

做数据库开发,首选pb,不要因为用的人少就觉得它不好,pb的问题主要是不开源,和好不好用是两码事,现在很多专业做数据管理的公司都还是在用PB做为主要开发工具,像铁路、银行、超市、医院这些领域内,PB有不可取代的地位。
再次的,应该就是delphi了,优缺点就不用详细说了,网上有大堆的介绍。
其实数据库开发的范围太广了,关键还是要看你要做的是哪方面的应用,三层的?两层的?局域网的还是基于互联网的,你的应用针对的客户群是哪些,用户基础怎么样,对应用的响应有多高的要求,这些因素都能影响你对开发工具的选择,JAVA、C#是流行,但并不一定是最好的。

B. pb开发程序怎么跟数据库连,代码详细点

setpointer(hourglass!) sqlca.dbms=profilestring("hszx.ini","database","dbms","") sqlca.database=profilestring("hszx.ini","database","database","") sqlca.logid=profilestring("hszx.ini","database","logid","") sqlca.logpass=profilestring("hszx.ini","database","logpass","") sqlca.servername=profilestring("hszx.ini","database","servername","") sqlca.dbpass=profilestring("hszx.ini","database","dbpass","") sqlca.userid=profilestring("hszx.ini","database","userid","") sqlca.lock=profilestring("hszx.ini","database","lock","") sqlca.dbparm=profilestring("hszx.ini","database","dbparm","") sqlca.autocommit=true connect using sqlca; setpointer(arrow!) if sqlca.sqlcode<0 then messagebox("操作失败","数据库连接错误!") halt end if 初始文件hszx。ini是配置文件,可以在开发目录夏建一个 [Database] DBMS=O84 ORACLE 8.0.4 Database= UserId= DatabasePassword= LogPass=密码 ServerName=服务器名 LogId=登录名 Lock= DbParm= Prompt=0 AutoCommit=0 其他的数据库也雷同

C. 如何将PB开发的数据库管理系统转移到其他机器上

最好别导出,会影响数据结构的。有两种办法可以把数据库移植到其他服务器上。
第一种:停当前机器上的SQL服务,这样就能把需要移植的数据库复制出来,然后拷贝到新的服务器上,然后附加。注:这种办法好处是有备份,如果移植过去发现有错误可以重新来复制;不过如果该服务器上的SQL服务不能被停止该方法则行不通。
第二种:分离数据库。在要分离的数据库上点右键,然后选择“所有任务”,然后选择“分离数据库”,复制该数据库到新服务器上,然后附加。注:最好是复制过去,不要剪切,确定新服务器上的数据库没问题了再删除原数据库。

D. 用PB开发的一个数据库服务器多个异地客户端使用查询更新速度慢问题解决的技术方法

处理的方法很简单:
1、并不是所有的地方都需要使用read commit的加锁级别,你从application中设置一句sqlca.lock="RU", 使用脏读,这样就可以去掉大多数不必要的SELECT行锁。然后在一定要读最新数据的地方,把SQLCA。LOCK改为RC,用完后再改回来。
这样就避免了几乎80%的阻塞。
2、对于由于行更新,或者其他UPDATE导致的锁,一般数据库会自己协调,在事务比较长的情况下,这需要你对原来的程序做适当的修改。把长事务变为几个小的事务,在事务中做更新操作,不要插入用户的交互。这是系统的设计原则。
如果你的系统对事务的要求不严格,又不想改动原来的程序,办法更简单,在前面
SQLCA。LOCK的基础上,加句SQLCA。AUTOCOMMIT=TRUE,这样每数据修改自动提交,就可以避免大多数由于更新产生的死锁和阻塞。
3、最后要对付的是刚才说的被大量应用频繁访问的表(HOT TABLE),如果你的系统允许使用RU加锁级别,那么不用太考虑,因为SELECT已经不会导致锁定了。
但是如果你不能使用RU方式(1里头提到的办法),
那么要采用这样的手段:
使用索引把更新锁,SELECT锁来分开,同时也避免SQLSERVER傻傻为了性能的原因把行锁升级为表锁。
具体办法是建立一个索引,如果可以的话使用聚集索引,因为聚集索引采用的是类似HASH的检索方式,这样当查找索引的时候,就不需要访问数据表了。
另一种办法,是将你SELECT语句中要检索的数据都加到索引中,例如你检索NAME,SEX,AGE,如果你把三个数据都加入了索引,这就意味着SELECT语句只要找到索引,就已经找到了最后要选取的数据(从索引中),这样自然不会去LOCK表了。这样做的时候要针对你的程序仔细选择索引,否则把索引变成了表的一个备份就没有意义了。

E. 为什么数据库开发公司都选用DelPHI,而不用PB

我的看法是,PB虽然dw很不错,但现在db控件日益丰富了,不一定要用他了,关键是pb比较过时了,更新和技术支持都不足,最大的缺陷是设计出的UI陈旧,跟不上发展的要求了,而delphi支持快速开发,和windows集成比较好,是目前除了vs外的首选,所以更受欢迎吧。

F. pb基本开发步骤怎么走

其实最简单的就是在windows上安装pb
1、找程序:找一个pb安装程序,最新版的是pb11.2
2、安装程序:安装pb,其中会默认安装anywhere sql,如果你使用sybase的数据库,在开发的时候,这个很有用,可以当做一个小型的数据库管理软件
3、配置数据库:安装好后,你要做的是按你的要求建一个数据库,刚才说了,如果用sybase数据库,就可以用anywhere sql开发,里面有一个sybase central管理中心,可以用来配置的
4、连接数据库:最简单的就是使用odbc,在控制面版中的'数据源'进行
5、pb连接数据库:你可以看一下相关例子,其实就是设置sqlca的参数,并connect就行了

G. pb中创建数据库窗口的步骤

当我们把用PowerBuilder(以下简称PB)开发的数据库客户端应用程序交给用户后,还需要在用户的服务器端的数据库系统上进行一系列配置工作,如建立业务数据库和建表、视图、主键、索引等数据对象。只有正确配置了数据库服务器上的数据结构,应用程序才能正常运行。通常由经验丰富的数据库管理员,使用数据库系统提供的工具,手工或通过其他辅助工具,来完成数据库端的配置工作。本文以微软的SQL Server 2000为例,介绍用PB开发一个生成业务数据库及各种业务数据对象的程序,用户只要运行这个程序,就可以建立数据库端的数据结构。
程序功能及结构
程序的主要功能是建立客户应用程序运行时需要的业务数据库和在新建立的业务数据库上建立数据对象。
程序的输入信息通过4个单行编辑文本框获得:
●sle_database:新建立的数据库名称;
●sle_datafile:新建数据库所用的数据文件;
●sle_logfile:新建数据库所用的日志文件;
●sle_script:建立数据库中的数据对象所用的脚本文件。
完成程序功能的两个按钮分别为:cb_create 用于建立数据库;cb_table用于在新建的数据库中建立表、主键等数据对象。
在两个输出窗口中输出结果:dw_database 用于显示新建的数据库名称及数据文件;dw_objects用于显示通过cb_table按钮建立的数据对象。
具体实现
考虑到对于一个特定的应用,在系统分析阶段就已经确定数据库所需要的数据空间、日志空间的大小等一些系统物理信息,不会等到程序运行时由用户确定,所以这些信息不需要用户输入。数据库的名称一般来说也是固定的,用户输入的数据库名称(sle_database),可用来检查数据库系统中是否已经有同名的数据库。数据文件和逻辑文件的物理位置和名称,由用户根据服务器上的磁盘空间空闲情况输入(sle_datafile、sle_logfile),程序中给出了初始值,指定的文件位置是SQL Server通常的数据文件存放位置。
1.建立数据对象的脚本文件(sle_script)
该文件是普通的文本文件类型,其内容由建立表、主键等数据对象的数据定义语言(DDL)组成,其语法符合数据库系统的规则。例如,脚本test.sql内容为建立两个带有主键的表:
create table xz_tj_all
( gxjg char(4) not null,
nian smallint not null,
yue tinyint not null,
bz1 tinyint not null,
bz2 tinyint not null,
a1 integer ,
a2 integer ,
a3 integer ,
primary key (gxjg, nian, yue, bz1, bz2)
)
create table xz_tj_4_1
( gxjg char(4) not null,
nian smallint not null,
yue tinyint not null,
bz1 tinyint not null,
bz2 tinyint not null,
a1 integer ,
primary key (gxjg, nian, yue, bz1, bz2)
)
2.窗口的Open事件
应用程序只用到一个窗口(w_create_database),在其Open事件中,对两个全局事务对象进行创建,并利用其中的一个事务对象(tr_sql)与系统数据库(Master)进行连接。此时还没有进行业务数据库的创建工作,业务数据库不存在,所以不能在这里进行与新建业务数据库的连接。w_create_database 的Open事件脚本如下:
//创建与Master系统数据库相连接的事务对象
tr_sql = create transaction
tr_sql.DBMS =“MSS Microsoft SQL Server 6.x”
tr_sql.DataBase = “Master”
//数据库系统管理员
tr_sql.LogPass = “sa”
//服务器名
tr_sql.ServerName = “station4”
//系统管理员口令
tr_sql.LogId = “sa”
tr_sql.AutoCommit = False
tr_sql.DBParm = “”
//连接到Master系统数据库
connect using tr_sql;
if tr_sql.sqlcode <> 0 then
MessageBox (“数据库连接错误”,“不能连接到SQL Server数据库Master。请确认SQL Server数据库是否启动。~n~r” + “错误信息:” + tr_sql.sqlerrtext)
return
end if
//从系统表sysdatabases中检索数据库信息
dw_database.SetTransObject(tr_sql);
//创建与新建业务数据库相连接的事务对象
tr_newBase = create transaction
tr_newBase.DBMS =“MSS Microsoft SQL Server 6.x”
tr_newBase.LogPass =“sa”
tr_newBase.ServerName =“station4”
tr_newBase.LogId =“sa”
tr_newBase.AutoCommit = False
tr_newBase.DBParm =“”
3.cb_create按钮的单击事件
根据业务需要,这里创建的数据文件和日志文件的初始大小为100MB,最大值为200MB,增量为20MB。按钮cb_create根据输入参数构造动态SQL语句,创建数据库。cb_create的clicked事件脚本如下:
//数据库名
string ls_database
//数据文件路径及文件名
string ls_dataFile
//日志文件路径及文件名
string ls_logFile
//创建数据库的SQL语句
string ls_mySql
//逻辑数据文件名
string ls_logicalFileName
//逻辑日志文件名
string ls_logicalLogName
SetPointer(Hourglass!)
//取得用户输入的数据库名称
ls_database = trim(sle_database.text)
//取得数据文件位置和名称
ls_dataFile = trim(sle_dataFile.text)
//取得日志文件位置和名称
ls_logFile = trim(sle_logFile.text)
ls_logicalFileName = ls_database + “Arch1”
ls_logicalLogName = ls_database + “Archlog1”
tr_sql.AutoCommit = True
//建立数据库的语句
ls_mySql=“CREATE DATABASE ”+ls_database+“ON”&
+“( NAME =”+ls_logicalFileName+“,”&
+“FILENAME = ‘”+ls_dataFile+“',”&
+“SIZE = 100MB,”&
+“MAXSIZE = 200,”&
+“FILEGROWTH = 20)”&
+“LOG ON ”&
+“( NAME = ”+ls_logicalLogName+“,”&
+“FILENAME = ‘”+ls_logFile+“',”&
+“SIZE = 100MB,”&
+“MAXSIZE = 200,”&
+“FILEGROWTH = 20)”
EXECUTE IMMEDIATE :ls_mySql Using tr_sql;
tr_sql.AutoCommit = False
//检索出刚刚建立的数据库
dw_database.Retrieve(ls_database)
cb_table.Enabled = True
SetPointer(Arrow!)
4.cb_table按钮的单击事件
按钮cb_table从指定的脚本文件(sle_script.text)中读取内容,构造动态的SQL语句,创建数据对象。为简化程序,对于脚本文件大于32765字节的情况,本文没做处理,读者可用多次读文件等技术自行处理。
cb_table的clicked事件脚本如下:
//创建数据对象前的时间
datetime ldt_create
//数据库名
string ls_database
//创建数据对象的SQL语句
string ls_sql
//存储脚本文件名
string ls_fileName
//打开文件的文件号
int li_fileNo
//文件长度,读取的文件字节数
long ll_fileLength, ll_number
//取得新建的数据库名称
ls_database = trim(sle_database.text)
if MessageBox(“请确认”,“将要在”+ls_database+“数据库中生成表结构?”, Question!,YesNO!,2) = 2 then
return
end if
SetPointer(HourGlass!)
//为连接业务数据库的事务对象设置数据库值
tr_newBase.DataBase = ls_database
connect using tr_newBase;
if tr_newBase.sqlcode <> 0 then
MessageBox (“数据库连接错误”,“不能连接到SQL Server数据库:” +ls_database + “ 。~n~r”+“错误信息:”+ tr_newBase.sqlerrtext)
return
end if
//取得建立数据对象的时间,并从系统表sysobjects中提取建立的数据对象
Select distinct getDate()
into :ldt_create
from sysobjects
using tr_newBase;
//此数据窗口将显示新建事务对象
dw_objects.SetTransObject(tr_newBase)
//从输入中取得脚本文件名
ls_fileName = trim(sle_script.text)
ll_fileLength = FileLength(ls_fileName)
//对大于32765字节的文件不做处理
if ll_fileLength > 32765 then
MessageBox(“”,“脚本文件太大”)
DISCONNECT USING tr_newBase;
return
elseif ll_fileLength > 0 then
//读取文件内容,执行动态SQL语句
li_fileNo = FileOpen(ls_fileName, StreamMode!)
ll_number = FileRead(li_fileNo, ls_sql)
if ll_number > 0 and ll_number <= 32765 then
tr_newBase.AutoCommit = True
EXECUTE IMMEDIATE :ls_sql
Usingtr_newBase;
tr_newBase.AutoCommit = False
end if
FileClose(li_fileNO)
else //不能正确读取文件信息
sle_script.setFocus()
sle_script.SelectText(1,len(sle_script.text))
MessageBox(“打开脚本文件出错”,“请输入正确的表结构脚本文件名称”)
DISCONNECT USING tr_newBase;
return
end if
//检索刚刚建立的数据对象
dw_objects.Retrieve(ldt_create)
DISCONNECT USING tr_newBase;
SetPointer(Arrow!)

H. pb开发工具怎样定义数据库窗口中的key事件

数据库窗口默认没有KEY事件,需要添加用户自定义事件:pbm_dwnkey,如图

热点内容
怎么看qq绑定了微信账号密码是什么 发布:2024-10-06 16:04:41 浏览:772
安卓电视装软件对电视有什么影响 发布:2024-10-06 16:01:54 浏览:440
编程广播积木 发布:2024-10-06 16:01:42 浏览:88
听音乐有缓存文件吗 发布:2024-10-06 15:56:10 浏览:84
等级算法 发布:2024-10-06 15:45:26 浏览:874
服务器放上海还是北京云主机 发布:2024-10-06 15:43:12 浏览:415
日常编程 发布:2024-10-06 15:43:02 浏览:327
生产任务量如何配置 发布:2024-10-06 15:40:39 浏览:196
java项目分析 发布:2024-10-06 15:35:50 浏览:190
靓密码保健内衣多少钱一套 发布:2024-10-06 15:30:42 浏览:175