九、库管理函数
1、LibraryCreate()
功 能:创建一个空的PowerBuilder应用库,并可根据需要在创建应用库的同时添加库注解。
语 法:LibraryCreate ( libraryname{, comments } )
参 数:libraryname:string类型,指定要创建应用库的名称,可以带上路径,不带路径时在当前目录下创建应用库;
comments:string类型,可选项,指定要创建的应用库的注解。
返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,LibraryCreate()函数返回NULL。
用 法:LibraryCreate()函数在指定路径下创建一个空的PowerBuilder应用库(PBL)。如果在指定应用库名称时没有指定文件的扩展名,那么该函数自动加上扩展名.PBL。
示 例:This statement in Windows NT creates a library named dwTemp in the PB directory on drive C and associates a comment with the library:
LibraryCreate("c:\pb\dwTemp.pbl", "Temporary library for dynamic DataWindows")
2、LibraryDelete()
功 能:删除应用库库文件或应用库中的数据窗口对象。
语 法:LibraryDelete ( libraryname{, objectname, objecttype } )
参 数:libraryname:string类型,指定库名,可以带上路径,不带路径时在系统搜索路径下查找应用库;
objectname:string类型,可选项,指定要从库中删除的数据窗口对象的名称;
objecttype:LibImportType类型,可选项,指定要删除对象的类型,目前仅支持ImportDataWindow!。
返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,LibraryDelete()函数返回NULL。
用 法:执行LibraryDelete()函数时,如果未指定后两个参数,那么该函数删除指定的应用库;如果指定了后两个参数,那么该函数删除指定应用库中指定的数据窗口对象。LibraryDelete()函数只能删除应用库中的数据窗口对象,如果想删除其它对象,那么只能在PowerBuilder开发环境中使用库管理画笔(Library Painter)来实现了。
示 例:This statement deletes a library called dwTemp in the current directory and on the current application library path:
LibraryDelete("dwTemp.pbl")
3、LibraryDirectory()
功 能:得到应用库中指定对象的信息列表,内容包括对象名称、最近修改日期和时间、以及对象的注释。
语 法:LibraryDirectory ( libraryname, objecttype )
参 数:libraryname:string类型,指定PowerBuilder应用库的名称,如果名称中未指定路径,那么该函数根据操作系统标准的文件搜索路径查找指定文件。
objecttype:LibDirType枚举类型,指定希望函数列出的对象类型,有效取值请参看用法。
返回值:String。函数执行成功时返回一个字符串,每个对象占用一行,行中各信息之间使用Tab字符(~t)分隔。行中信息格式为:
对象名~t修改日期/时间~t注释~n
发生错误时函数返回空字符串("")。如果任何参数的值为NULL,LibraryDirectory()函数返回NULL。
用 法:LibraryDirectory()函数的objecttype参数是个LibDirType枚举类型的量,其有效取值为:
DirAll! -- 得到所有对象的信息;
DirApplication! -- 得到应用对象的信息;
DirDataWindow! -- 得到所有数据窗口对象的信息;
DirFunction! -- 得到所有函数对象的信息;
DirMenu! -- 得到所有菜单对象的信息;
DirPipeline! -- 得到所有数据管道对象的信息;
DirProject! -- 得到工程对象的信息;
DirQuery! -- 得到所有查询对象的信息;
DirStructure! -- 得到所有结构对象的信息;
DirUserObject! -- 得到所有用户对象的信息;
DirWindow! -- 得到所有窗口对象的信息。
使用LibraryDirectory()函数得到指定对象的名称、修改日期/时间以及可能的注释后,应用程序既可以使用Pos()函数进行定位和字符串分割,也可以使用数据窗口的ImportString()函数将结果显示在数据窗口中。
示 例:This code imports the string returned by LibraryDirectory to the DataWindow dw_list and then redraws the dw_list. The DataWindow was defined with an external source and three string columns:
String ls_entries
ls_entries = LibraryDirectory("c:\pb\dwTemp.pbl", DirUserObject!)
dw_list.SetRedraw(FALSE)
dw_list.Reset( )
dw_list.ImportString(ls_Entries)
dw_list.SetRedraw(TRUE)
4、LibraryDirectoryEx()
功 能:得到应用库中一系列对象的信息列表,内容包括对象名称、最近修改日期和时间、对象的注释、以及对象的类型。使用该函数,应用程序既可以得到所有对象的信息,也可以只得到指定对象的信息。
语 法:LibraryDirectoryEx ( libraryname, objecttype )
参 数:libraryname:string类型,指定PowerBuilder应用库的名称,如果名称中未指定路径,那么该函数根据操作系统标准的文件搜索路径查找指定文件。
objecttype:LibDirType枚举类型,指定希望函数列出的对象类型,有效取值请参看用法。
返回值:String。函数执行成功时返回一个字符串,每个对象占用一行,行中各信息之间使用Tab字符(~t)分隔。行中信息格式为:
对象名~t修改日期/时间~t注释~n
发生错误时函数返回空字符串("")。如果任何参数的值为NULL,LibraryDirectory()函数返回NULL。
用 法:LibraryDirectory()函数的objecttype参数是个LibDirType枚举类型的量,其有效取值为:
DirAll! -- 得到所有对象的信息;
DirApplication! -- 得到应用对象的信息;
DirDataWindow! -- 得到所有数据窗口对象的信息;
DirFunction! -- 得到所有函数对象的信息;
DirMenu! -- 得到所有菜单对象的信息;
DirPipeline! -- 得到所有数据管道对象的信息;
DirProject! -- 得到工程对象的信息;
DirQuery! -- 得到所有查询对象的信息;
DirStructure! -- 得到所有结构对象的信息;
DirUserObject! -- 得到所有用户对象的信息;
DirWindow! -- 得到所有窗口对象的信息。
使用LibraryDirectory()函数得到指定对象的名称、修改日期/时间以及可能的注释后,应用程序既可以使用Pos()函数进行定位和字符串分割,也可以使用数据窗口的ImportString()函数将结果显示在数据窗口中。
示 例:This code imports the string returned by LibraryDirectoryEx to the DataWindow dw_list and then redraws the dw_list. The DataWindow was defined with an external source and four string columns:
String ls_entries
5、LibraryExport()
功 能:从指定应用库中以对象的语法定义格式卸出对象。
语 法:LibraryExport ( libraryname, objectname, objecttype )
参 数:libraryname:string类型,指定要移出对象的应用库的名称,如果名称中未指定路径,那么该函数根据操作系统标准的文件搜索路径查找指定文件;
objectname:string类型,指定要移出对象的名称;
objecttype :LibExportType枚举类型,指定要移出对象的类型,具体取值请参看用法。
返回值:String。函数执行成功时返回指定对象的语法,该语法与使用库管理画笔(Library Painter)移出对象时的语法相同,区别在于LibraryExport()函数省略了移出语法的头部。如果发生错误,则函数返回空字符串("")。如果任何参数的值为NULL,LibraryExport()函数返回NULL。
用 法:LibraryExport()的objecttype参数的可能取值为:
ExportApplication! -- 应用对象;
ExportDataWindow! -- 数据窗口对象;
ExportFunction! -- 函数对象;
ExportMenu! -- 菜单对象;
ExportPipeline! -- 数据管道对象;
ExportProject! -- 工程对象;
ExportQuery! -- 查询对象;
ExportStructure! -- 结构对象;
ExportUserObject! -- 用户对象;
ExportWindow! -- 窗口对象。
示 例:These statements export the DataWindow object dw_emp from the library called dwTemp to a string named ls_dwsyn and then use it to create a DataWindow:
String ls_dwsyn, ls_errors
ls_dwsyn = LibraryExport("c:\pb\dwTemp.pbl","d_emp", ExportDataWindow!)
dw_1.Create(ls_dwsyn, ls_errors)
6、LibraryImport()
功 能:将以语法格式表示的数据窗口对象装入指定的应用库中。
语 法:LibraryImport(libraryname,objectname,objecttype,syntax,errors{,comments } )
参 数:libraryname:string类型,指定要移入对象的应用库的名称,如果名称中未指定路径,那么该函数根据操作系统标准的文件搜索路径查找指定文件;
objectname:string类型,指定要移入的数据窗口对象的名称;
objecttype:LibImportType枚举类型,指定要移入对象的类型,目前该函数只支持
ImportDataWindow!,表示只能向应用库中移入数据窗口对象;
syntax:string类型,指定要移入数据窗口对象的语法;
errors:string类型变量,用于在发生错误时保存出错信息;
comments:string类型,可选项,用于指定移入对象的注解。
返回值:Integer。函数执行成功时返回1,发生错误时返回-1。如果任何参数的值为NULL,LibraryImport()函数返回NULL。
用 法:当应用程序在运行过程中动态创建数据窗口对象后,可以使用LibraryImport()函数把动态数据窗口对象的定义保存到应用库中,以后就可以直接使用该对象了。
示 例:These statements import the DataWindow object d_emp into the library called dwTemp and store any errors in ErrorBuffer. Note that the syntax is obtained by using the Describe function:
string dwsyntax, ErrorBuffer
integer rtncode
dwsyntax = dw_1.Describe("DataWindow.Syntax")
rtncode=LibraryImport("c:\pb\Temp.pbl","d_emp",ImportDataWindow!,dwsyntax,
ErrorBuffer)
These statements import the DataWindow object d_emp into the library called dwTemp, store any errors in ErrorBuffer, and associate the comment Employee DataWindow 1 with the entry:
string dwsyntax, ErrorBuffer
integer rtncode
dwsyntax = dw_1.Describe("DataWindow.Syntax")
rtncode = LibraryImport("c:\pb\Temp.pbl","d_emp", ImportDataWindow!, dwsyntax, &
ErrorBuffer,"Employee DataWindow 1")