在VFP中怎样做出象IE4中的那样的浮动按钮
文章作者 100test 发表时间 2008:02:01 15:51:49
来源 100Test.Com百考试题网
先放上按钮,将按钮的visible设为.f.,再用一image(其中图形与按钮一样)放在按钮的位置,在图片的mousemove事件中写入将按钮visible设为.t.的语句,在表单的mousemove事件中写入将按钮visible设为.f.的语句。
2.使用 SQL,我正在设法将一个表与多个表建立左联接。当查询需要的所有表打开时,该查询可以工作。但是当有些表没有打开时,就会产生错误。而且当所有表打开时,尽管没有产生错误信息,但结果不正确。为什么?
当试图建立一个表对多个表的左联接时,您也许使用了下面语句,该语句用表别名进行了“自联接”。您的 SQL 语句可能如下所示:
0select one.firstname as first, one.lastname as second,.
two.firstname as third, two.lastname as fourth.
from FirstTable. left outer join SecondTable one.
left outer join SecondTable two. left outer join ThirdTable.
on ThirdTable.ThirdID=FirstTable.FirstID.
on Two.SecondID=FirstTable.FirstID.
on one.SecondID=FirstTable.FirstID.
order by 4,3,2,1
这里的查询试图将临时表 One、Two 以及 ThirdTable 左联接到 FirstTable 上,但是没有得到预期的效果。查询分析器从最里面的联接开始分析查询(在上面语句中为 "left outer join ThirdTable"),但是不能定位 FirstTable 表,该表名字位于此语句的上面。因此,如果没有打开表,您就会发现错误,如 "SQL: Column `ThirdID` 没有找到",同时输出也不正确。当表打开时,"couple.coupleid" 绑定到外部(非SQL)临时表 "couple" 的字段上。此查询也是合法的,但是得不到预期的效果。为了避免此错误,并能够得到正确结果,可以使用类似如下的 SQL 语句:
0select one.firstname as first, one.lastname as second,.
two.firstname as third, two.lastname as fourth.
from (((FirstTable.
left outer join SecondTable One.
on one.SecondID = FirstTable.FirstID).
left outer join SecondTable Two.
on Two.SecondID = FirstTable.FirstID).
left outer join ThirdTable.
on ThirdTable.ThirdID = FirstTable.FirstID).
order by 4,3,2,1
语句中的括号不是必须的,但推荐您加上它。通过如上的语句结构,如果所有的表全部是关闭的,也不会出错,结果也是正确的。
[返回]
3.如何加密表DBF文件数据
本人用VFP代码编了一个DBF加密小程序,以供大家参考:
入口参数说明:
filename 表文件名
jm =1 加密 =0 解密
加密思想:用低级文件函数改写数据库第一个字节
程序代码如下:
parameters filename,jm
*处理文件名
if at( . ,filename)=0
filename=filename .dbf
endif
if jm=1 &.&.加密
handle=fopen(filename,2) &.&.打开文件
keybite=fread(handle,1) &.&.读表头第一个字节
=fseek(handle,0) &.&.指针移回第一个字节
=fwrite(handle,chr(asc(keybite) 2)) &.&.用比原来高2的ASCII字符改写
=fclose(handle) &.&.关闭文件
else &.&.解密
handle=fopen(filename,2)
keybite=fread(handle,1)
=fseek(handle,0)
=fwrite(handle,chr(asc(keybite)-2)) &.&.用比原来低2的ASCII字符改写
=fclose(handle)
endif
经过这样处理过的表就不能用USE打开,优点是加密速度快,但不彻底但用
一个文本编辑器打开还是可以看到一些东西,怎样进一步加密还有待探讨。