软件注册站
热情软件屋

 
PowerBuilder查询功能的实现
编号: QA000142    
建立日期: 1998年11月27日 最后修改日期: 2004年2月29日
所属类别: Power Builder - 数据库
   
    目前我正在开发一个人事薪资管理系统,而我曾试过种种尝试,却几乎什麽功能也实现不了,实在没撤,只好求助于您,希望能得到您帮助和指教,不胜感激!现所开发的这个人事薪资管理系统是基于Win95/Win NT操作系统,采用Power Builder 5.0自带的Sybase SQL Anywhere 5.0后端数据库接口平台;目前是在简体Win98环境下开发。作为一个初学者,存在的问题实在太多,这里主要存在的问题有:
    1.查询功能的难以实现 因为自已学习的还不够深入,对PB的一些语法机制还不尽熟悉
    ,我曾试过种种方案,却难以如愿地实现查询功能,当然,如果查询不能很好地实现
    ,其他的诸如数据统计等功能便难以展开,您说对不?
    2.作为开发出来的一个好的数据库产品,其维护方面当是较为容易的 为此,在开发过
    程中,可以设置外部键将两表关联。但我在PB开发过程中发现,若选取已连接好后的
    两表中的若干字段创建一DataWindow,如果其中包含有Blob列字段,则预览该Datawind
    ow或运行应用程序后,当执行到用该Datawindow作为数据源的Window时,则出错,显
    示的出错信息是:Syntax error near '(end of line)',并且Window中的一些按钮也不能正常使用,这是何原因,有没有办法改善,使之既能实现预期的功能,又能避免这一情形发生
    3.由于工作的需要,得将单位员工的照片存入数据库,以便实现员工照片的查询检索但在具体的操作过程中,发现原本很清晰的照片文件存入数据库后,一是照片所占内存增大,二是所看到的图象效果已失真,请问这是否正常,若不正常,有没有办法使一幅照片存入数据库后,看到的图象视觉效果良好。
    具体存在的问题和应用程序请阅附件文件rsgz.zip。(钟楚敏)
   
    我认为一般来说查询不是系统的核心, 数据处理才是核心, 对于某些侧重于统计分析的系统, 则需要强化查询的功能. 建议你在学习过程中, 参考PB的sample code建立适合你所需要的模板Window, 一般的查询不需要更新数据库, 只有考虑单DW的查询和Master-Detail的查询即可. 在以后建立新的Window, 从模板继承. 一般查询所要求具有的功能无非是: Query(带参数或不带参数), Sort, Filter, Print. 都有相应的函数, 工作量不太大.
    Blob我没用过, 好象DW的Select clause中不能包括Blob字段, 你的例子程序中也没有将Blob字段作为DW的一个column, 而是在detail band加一个对象来对应Blob字段。请参考随机手册中关于Blob的使用部分。
    由于我用的是PB6, 你的Exe不能运行, 而从你的源程序运行, 没看到照片, 不知效果。也没什么建议, 见谅。
    大致看了你的源程序, 想提一些建议:
    1. 你建了一个Table存放登录用户信息, 但password字段是明文, 建议用一单向陷门函数加密后存入数据库。
    2. 建议主窗口在登录后保持open状态, 直至用户退出, 同时关闭登录窗口(至少应Hide)。
    3. 查询窗口若按钮太多, 不如建立菜单, 简化对用户的界面。
    4. Control的名字最好取有意义的名字, 对以后维护也有好处。
    5. 纯属个人观点, 主打颜色不宜太亮。
    
    火并萧十一郎的意见:
    可以建立数据窗口,如dw_1并且在此窗口中,定义几个窗口中用到的变量用两句话可以实现查询
    dw_1.reset()
    dw_1.retrieve(变量1,变量2,变量3...)
    其中的变量为数据窗口需要用到的字段。
    
    breadwinner的意见:
    对于BLOB类型的字段,如果字节数超过一定范围,其已不在数据库中存储,数据库表里只是保存着该存储位置的一个指针(针对oracle来说),对于pb,你首先建立一个图像控件,然后声明一blob变量,通过数据库查询,对其赋值,再通过P_1.setpicture(blob变量)来显示,阁下请试一试!如不行,可共同切磋!

    

此问题由Yang Ya Bin回答。

附加关键字:编程, 源程序, programming, source code, Power Builder, PB, sybase, 数据库, database, query

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio