PowerBuilder数据窗口函数总结.docx
- 文档编号:29633747
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:43
- 大小:41.11KB
PowerBuilder数据窗口函数总结.docx
《PowerBuilder数据窗口函数总结.docx》由会员分享,可在线阅读,更多相关《PowerBuilder数据窗口函数总结.docx(43页珍藏版)》请在冰豆网上搜索。
PowerBuilder数据窗口函数总结
PowerBuilder中数据窗口函数小结
一、连接数据库
连接数据库也就是指定事务对象。
PowerBuilder提供了两个函数:
SetTrans()和SetTransObject()。
语法格式:
dw_control.SetTrans(TransactionObject)
dw_control.SetTransObject(TransactionObject)
其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。
这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。
用户只需要在这里填充一个事务对象,PB就会自动完成对该事物对象的初始化以及和数据库连接的工作。
而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。
但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。
与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。
因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。
这两个函数都是成功时返回1,发生错误时返回-1。
二、检索数据
用于检索数据的函数只有一个,就是Retrieve()函数。
语法格式:
dw_control.Retrieve()
如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。
而且检索参数必须和数据窗口对象中定义顺序一致。
此函数返回一个长整型的数据,代表检索出来的数据行数。
如果发生错误,将返回-1。
三、更新数据
当用户对数据窗口对象内的数据修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。
语法格式:
dw_control.Update()
这个更新可能成功,也可能失败。
一般在这个函数被调用之后,总是要做一个检查。
请看下面的例子:
Intli_return
li_return=dw_1.Update()
IFli_return=1THEN
COMMITUSINGSQLCA;
ELSE
ROLLBACKUSINGSQLCA;
ENDIF
在这段代码中,首先对数据窗口控件进行更新操作。
但是更新只是把数据写入到客户机的内存,并没有提交到数据库中。
如果更新成功,就把它提交到数据库中,如果更新失败,就回滚到当前的事务。
行操作
行操作的函数主要是对数据库中的数据进行插入、删除或选择操作。
一、插入行
在DataWindow中插入一行,可以使用InsertRow()函数。
语法格式:
dw_control.InsertRow(rownumber)
dw_control是数据窗口控件名,rownumber是要插入行的的行号。
如果这个参数为0,代表在当前DataWindow的最后一行插入一空行。
InsertRow()函数返回一个长整型值,以此来代表插入的行号。
如果插入失败,则返回-1。
二、删除行
要删除DataWindow内的一行数据,则要使用DeleteRow()函数。
语法格式:
dw_control.DeleteRow(rownumber)
其中rownumber是要删除的行号。
如果该值为0,表示删除当前行。
如果删除成功,返回1,失败则返回-1。
三、设置当前行
如果要设置DataWindow中的某行为当前行,可以使用SetRow()函数。
语法格式:
dw_control.SetRow(rownumber)
其中rownumber是要设置为当前行的行号。
如果函数返回1表示成功,返回-1代表失败。
四、获取当前行
如果想要获取DataWindow中的某行为当前行,可以使用GetRow()函数。
语法格式:
dw_control.GetRow()
该函数没有参数,它返回一个长整型,代表当前行号。
如果返回-1代表失败。
如果返回0代表没有选中任何行。
五、选择行
如果想要在DataWindow中加亮显示某一行或取消加亮显示某一行,可以使用SelectRow()函数。
语法格式:
dw_control.SelectRow(rownumber,select)
其中,rownumber表示要加亮或者取消加这显示的行号,0表示所有行。
select是一个布尔类型的值,TRUE表示加亮,FALSE表示取消加亮显示。
该函数返回1时表示成功,返回-1时表示失败。
如果想要直接设置某一行为加亮,需要首先取消其它行的加亮显示状态,采用如下的两行代码:
dw_1.SelectRow(0,FALSE)
dw_1.SelectRow(rownumber,TRUE)
六、获取选择行
如果想要获取当前DataWindow中加亮显示的行,可以使用GetSelectRow()函数。
语法格式:
dw_control.GetSelectRow(rownumber)
其中,rownumber为开始查找的行的行号,0表示从头开始查找。
该函数返回一个长整数,表示从rownumber开始查找第一个加亮显示的行的行号。
如果失败返回0。
七、滚动行
如果在DataWindow的末尾插入一行数据,而当前行是在DataWindow的中央,那么这种插入可能不会被用户觉察。
为了改变这种情况,可以滚动行到DataWindow的末尾,这样用户就能发现新的改变。
要滚动行,可以使用ScrollToRow()函数。
语法格式:
dw_control.ScrollToRow(rownumber)
该函数返回1时表示成功,返回-1时表示失败。
与ScrollToRow()函数据功能相关的还有如下几个函数:
ScrollPriorRow():
向上滚动一行
ScrollNextRow():
向下滚动一行
列操作
列操作类的函数主要是选择指定的列和获取列的信息。
一、获取列
如果要获取当前的列号,可以使用GetColumn()函数,如果要获取当前的列名,可以使用GetColumnName()函数。
语法格式:
dw_control.GetColumn()
dw_control.GetColumnName()
这两个函数都没有参数,GetColumn()函数返回一个长整型值,代表当前的列号,GetColumnName()函数返回当前列的列名。
如果返回0,表示当前没有任何列被选择返回-1表示失败。
二、设置列
要设置某一列为DataWindow中的当前列,可以使用SetColumn()函数。
语法格式:
dw_control.SetColumn(column)
其中column既可以是列号,也可以是列名。
当该函数返回1时表示成功,返回-1时表示失败。
数据操作
数据操作类的函数主要是对DataWindow中的数据进行获取、设置。
一、获取数据
如果要从DataWindow的指定行和列中获取数据,就要使用GetItem系列的函数。
这个系列的函数共有五个,分别是对字符串、数字、日期、日期时间和小数。
语法格式:
dw_control.GetItemString(rownumber,column)
dw_control.GetItemNumber(rownumber,column)
dw_control.GetItemDate(rownumber,column)
dw_control.GetItemDateTime(rownumber,column)
dw_control.GetItemDecimal(rownumber,column)
其中,rownumber参数表示行号,column可以是列号或列名。
二、设置数据
与获取数据所用的函数不同,设置DataWindow内指定行列处的数据只要使用一个SetItem()函数就可以了。
语法格式:
dw_control.SetItem(rownumber,column,value)
其中rownumber表示行号,column可以是列号,也可以是列名,value表示要设置的值。
但是该必须与DataWindow中指定的行列处的数据类型一致,不然PowerBuilder会报错。
SetItem()函数返回1时表示成功,返回-1时表示失败。
三、数据排序
如果希望对DataWindow内的数据进行重新排序,而又不想重新从数据库中检索数据,可以使用SetSort()和Sort()函数。
这两个函数一起完成对DataWindow进行排序的功能。
其中SetSort()函数用于设置如何排序,Sort()函数用于对DataWindow实际进行排序。
语法格式:
dw_control.SetSort(expression)
dw_control.Sort()
其中expression是一个字符串,表示排序的表达式,它的具体值是一个列名后面加一个空格,然后是"A",表示升序,或"D",表示降序。
如果有多个列要同时进行排序,它们之间用逗号隔开。
例:
dw_1.SetSort("nameA,xhD")
这两个函数都是返回1表示成功,返回-1表示失败。
四、数据过滤
如果希望对DataWindow内的数据进行过滤而不重新从数据库中检索数据,可以使用SetFilter()和Filter()函数。
它们一起完成对数据的过滤功能。
其中
SetFilter()函数用来设置过滤条件,Filter()函数用于对DataWindow进行过滤。
语法格式:
dw_control.SetFiter(expression)
dw_control.Fiter()
其中expression是一个字符串,表示过滤的条件,它实际是一个逻辑表达式。
例:
dw_1.SetFilter("id>\'003\'ANDnamelike\'王%\'")
dw_1.Filter()
这两个函数都是返回1表示成功,返回-1表示失败。
五、数据检查
PowerBuilder提供了两个函数用于数据的检查,它们是DeleteCount()和ModifiedCount(),其作用分别是检查DataWindow中的数据自上一次更新到现在,被删除的行数和被修改的行数。
它们一般在窗口的CloseQuery事件中使用,用来检查该窗口的DataWindow中的数据是否有尚未保存的修改。
语法格式:
dw_control.DeleteCount()
dw.control.ModifiedCount()
它们分别返回从上一次更新到现在,DataWindow中被删除和被修改的行数。
如果没有行被删除或被修改,那么它们返回0。
如果出现错误则返回-1。
一般情况下,如果窗口中含有可供修改的数据窗口对象,那么在窗口的CloseQuery事件中通常使用如下代码检查数据窗口对象中是否有尚未保存的数据:
Intli_return
IFdw_1.ModifiedCount()>0ORdw_1.DeletedCount()>0THEN
li_return=MessageBox("提示","数据尚未保存,是否保存?
",Question!
YesNoCancel!
3)
CHOOSECASEli_return
CASE1
TriggerEvent(\'ue_save\')
RETURN0
CASE2
RETURN0
CASE3
RETURN1
ENDCHOOSE
ENDIF
1. 怎么判断数据窗口中指定字段的数据类型?
Dw_1.describe(“colname.coltype”)
返回类型为:
string
pb常用函数
(一)(转)
Abs()
功能计算绝对值。
语法Abs(n)
参数n:
要得到绝对值的数值型变量或表达式返回值返回值的数据类型与n的数据类型相同,函数执行成功时返回n的绝对值。
如果参数n的值为NULL,Abs()函数返回NULL。
Ceiling()
功能返回大于n的最小整数。
语法Ceiling(n)
参数n:
数值型变量或表达式返回值返回值的数据类型与n的数据类型相同。
函数执行成功时返回大于n的最小整数。
如果参数n的值为NULL,Ceiling()函数返回NULL。
Cos()
功能计算余弦,其中参数以弧度为单位。
语法Cos(n)
参数n:
数值型变量或表达式返回值Double。
函数执行成功时返回n的余弦。
如果参数n的值为NULL,Cos()函数返回NULL。
Exp()
功能计算e的n次方。
语法Exp(n)
参数n:
指定幂值返回值Double。
函数执行成功时返回e(约等于2.71828)的n次方。
如果参数n的值为NULL,Exp()函数返回NULL。
Fact()
功能计算n的阶乘。
语法Fact(n)
参数n:
数值型变量或表达式返回值Double。
函数执行成功时返回n的阶乘。
如果参数n的值为NULL,Fact()函数返回NULL。
Int()
功能得到小于等于n的最大整数。
语法Int(n)
参数n:
数值型变量或表达式返回值Integer。
函数执行成功时返回小于等于n的最大整数。
如果n的值太小或太大,超过了整数的表示范围,则函数返回0。
如果参数n的值为NULL,Int()函数返回NULL。
Log()
功能计算n的自然对数。
语法Log(n)
参数n:
数值型变量或表达式,其值必须大于0返回值Double。
函数执行成功时返回n的自然对数。
如果n小于等于0,将导致运行错误。
如果参数n的值为NULL,Log()函数返回NULL。
LogTen()
功能计算n的常用对数(以10为底)。
语法LogTen(n)
参数n:
数值型变量或表达式,其值必须大于0返回值Double。
函数执行成功时返回n的常用对数。
如果n小于等于0,将导致运行错误。
如果参数n的值为NULL,LogTen()函数返回NULL。
Max()
功能求两个数中的最大值。
语法Max(x,y)
参数x:
数值型变量或表达式,参加比较的第一个数y:
数值型变量或表达式,参加比较的第二个数返回值以x、y中数据类型更精确的数据类型作为该函数的返回值数据类型。
函数执行成功时返回参数比较的两个数中更大者。
如果任何参数的值为NULL,Max()函数返回NULL。
Min()
功能求两个数中的最小值。
语法Min(x,y)
参数x:
数值型变量或表达式,参加比较的第一个数y:
数值型变量或表达式,参加比较的第二个数返回值以x、y中数据类型更精确的数据类型作为该函数的返回值数据类型。
函数执行成功时返回参数比较的两个数中较小者。
如果任何参数的值为NULL,Min()函数返回NULL。
Mod()
功能求余数。
语法Mod(x,y)
参数x:
数值型变量或表达式,被除数y:
数值型变量或表达式,除数返回值以x、y中数据类型更精确的数据类型作为该函数的返回值数据类型。
函数执行成功时返回x除以y所得的余数。
如果任何参数的值为NULL,Mod()函数返回NULL。
Pi()
功能计算n与Pi(3.14159265358979323...)的乘积。
语法Pi(n)
参数n:
数值型变量或表达式返回值Double。
函数执行成功时返回n与Pi(3.14159265358979323...)的乘积。
发生错误时返回-1。
如果参数n的值为NULL,Pi()函数返回NULL。
Rand()
功能得到1与n之间的一个伪随机数。
语法Rand(n)
参数n:
数值型变量或表达式,指定要产生的伪随机数的上界。
有效值在1到32,767之间返回值与n的数据类型相同。
函数执行成功时返回1与n之间的一个伪随机数,包括1和n在内。
如果参数n的值为NULL,Rand()函数返回NULL。
Randomize()
功能初始化伪随机数发生器,这样让应用程序每次使用不同的伪随机数序列。
语法Randomize(n)
参数n:
数值型变量或表达式,指定伪随机数生成器使用的起始值,不同的起始值可以生成不同的伪随机数序列。
当n的值为0时,该函数把系统时钟作为伪随机数生成器的起始值,这样可以生成不可重复的伪随机数序列。
当n的值不为0时,可以产生不同的伪随机数序列,但是,如果两次使用相同的伪随机数生成器起始值,那么两次生成的伪随机数序列相同。
n的值在0到32,767之间返回值Integer。
极少使用该函数的返回值。
Round()
功能将x四舍五入到n位。
语法Round(x,n)参数x:
要四舍五入的数值型数据n:
整数类型,指定从哪个小数位上四舍五入x。
有效值在0到18之间返回值Decimal。
函数执行成功时返回将x四舍五入到小数点后第n位的数值,如果函数执行失败或任何参数的值为NULL,Round()函数返回NULL。
Sign()
功能确定n是整数、负数还是零。
语法Sign(n)
参数n:
数值型变量或表达式,指定要测试符号的值返回值Integer。
当n大于0时返回1;当n小于0时返回-1;当n等于0时返回0。
如果参数n的值为NULL,Sign()函数返回NULL。
Sin()
功能计算正弦,其中参数以弧度为单位。
语法Sin(n)
参数n:
数值型变量或表达式返回值Double。
函数执行成功时返回n的正弦。
如果参数n的值为NULL,Sin()函数返回NULL。
Sqrt()
功能计算平方根。
语法Sqrt(n)
参数n:
数值型变量或表达式,指定要计算平方根的数据返回值Double。
函数执行成功时返回n的平方根。
如果n是负数,则执行该函数时引发运行错误。
如果参数n的值为NULL,Sqrt()函数返回NULL。
Tan()
功能计算正切,其中参数以弧度为单位。
语法Tan(n)
参数n:
数值型变量或表达式返回值Double。
函数执行成功时返回n的正切。
如果参数n的值为NULL,Tan()函数返回NULL。
Truncate()
功能截断数值到指定的小数位。
语法Truncate(x,n)
参数x:
要截断的数值型数据n:
整数类型,指定从哪个小数位上截断x。
有效值在0到18之间返回值Decimal。
函数执行成功时返回将x截断到小数点后第n位的数值,如果函数执行失败或任何参数的值为NULL,Truncate()函数返回NULL。
所谓截断就是舍弃指定位之后的数值。
Asc()
功能得到字符串第一个字符的ASCII码整数值。
语法Asc(string)
参数string:
要得到第一个字符ASCII值的字符串返回值Integer。
函数执行成功时返回string参数第一个字符的ASCII值,如果string参数的值为NULL,则Asc()函数返回NULL。
Char()
功能将字符串的第一个字符、Blob变量的第一个值、或一个整数转换成字符。
语法Char(n)
参数n:
字符串、Blob变量或整数,也可以是包含上述类型数据的Any类型变量返回值Char。
返回参数n的第一个字符。
如果n参数的值为NULL,则Char()函数返回NULL。
Dec()
功能将字符串或Blob值转换成Decimal类型的值。
语法Dec(stringorblob)
参数stringorblob:
string类型变量或Blob类型变量。
Blob类型变量时,把该变量第一个值转换为Decimal类型的值,其余部分被忽略。
stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Decimal。
函数执行成功时返回相应的Decimal类型值。
如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Dec()函数返回0。
如果stringorblob参数的值为NULL,则Dec()函数返回NULL。
Double()
功能将字符串或Blob值转换成Double类型的值。
语法Double(stringorblob)
参数stringorblob:
string类型变量或Blob类型变量。
Blob类型变量时,把该变量第一个值转换为Double类型的值,其余部分被忽略。
stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Double。
函数执行成功时返回相应的Double类型值。
如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Double()函数返回0。
如果stringorblob参数的值为NULL,则Double()函数返回NULL。
Integer()
功能将字符串或Blob值转换成Integer类型的值。
语法Integer(stringorblob)
参数stringorblob:
string类型变量或Blob类型变量。
Blob类型变量时,把该变量第一个值转换为Integer类型的值,其余部分被忽略。
stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Integer。
函数执行成功时返回相应的Integer类型值。
如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Integer()函数返回0。
如果stringorblob参数的值为NULL,则Integer()函数返回NULL。
Long()
功能将其它类型的数据转换为Long类型的值。
该函数有两种语法格式:
语法一、将两个无符号整数组合成一个长整数值;
语法二、将字符串或Blob值转换成Long类型的值。
下面分别予以介绍:
语法一、将两个无符号整数组合成一个长整数值
语法Long(lowword,highword)
参数lowword:
UnsignedInteger类型,指定长整数中的低位值highword:
UnsignedInteger类型,指定长整数中的高位值返回值Long。
函数执行成功时返回由低位值和高位值组合后的长整数值,发生错误时返回-1。
如果任何参数的值为NULL,则Long()函数返回NULL。
语法二、将字符串或Blob值转换成Long类型的值
语法Long(stringorblob)
参数stringorblob:
string类型变量或Blob类型变量。
Blob类型变量时,把该变量第一个值转换为Long类型的值,其余部分被忽略。
stringorblob参数也可以是包含上述类型数据的Any类型变量返回值Long。
函数执行成功时返回相应的Long类型值。
如果stringorblob参数中的值不是有效的PowerScript数字或数据类型不兼容,那么Long()函数返回0。
如果stringorblob参数的值为NULL,则Long()函数返回NULL。
Real()
功能将字符串或Blob值转换成Real类型的值。
语法Real(stringorblob)
参数stringorblob:
string类型变量或Blob类
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PowerBuilder 数据 窗口 函数 总结