 |
我认为一般来说查询不是系统的核心, 数据处理才是核心, 对于某些侧重于统计分析的系统, 则需要强化查询的功能. 建议你在学习过程中, 参考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。
|