在VFP中怎么做出象IE4中的那樣的浮動按鈕
發(fā)表時間:2023-08-07 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]先放上按鈕,將按鈕的visible設(shè)為.f.,再用一image(其中圖形與按鈕一樣)放在按鈕的位置,在圖片的mousemove事件中寫入將按鈕visible設(shè)為.t.的語句,在表單的mousemov...
先放上按鈕,將按鈕的visible設(shè)為.f.,再用一image(其中圖形與按鈕一樣)放在按鈕的位置,在圖片的mousemove事件中寫入將按鈕visible設(shè)為.t.的語句,在表單的mousemove事件中寫入將按鈕visible設(shè)為.f.的語句。
[返回]
2.使用 SQL,我正在設(shè)法將一個表與多個表建立左聯(lián)接。當(dāng)查詢需要的所有表打開時,該查詢可以工作。但是當(dāng)有些表沒有打開時,就會產(chǎn)生錯誤。而且當(dāng)所有表打開時,盡管沒有產(chǎn)生錯誤信息,但結(jié)果不正確。為什么?
當(dāng)試圖建立一個表對多個表的左聯(lián)接時,您也許使用了下面語句,該語句用表別名進行了“自聯(lián)接”。您的 SQL 語句可能如下所示:
select 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 左聯(lián)接到 FirstTable 上,但是沒有得到預(yù)期的效果。查詢分析器從最里面的聯(lián)接開始分析查詢(在上面語句中為 "left outer join ThirdTable"),但是不能定位 FirstTable 表,該表名字位于此語句的上面。因此,如果沒有打開表,您就會發(fā)現(xiàn)錯誤,如 "SQL: Column `ThirdID` 沒有找到",同時輸出也不正確。當(dāng)表打開時,"couple.coupleid" 綁定到外部(非SQL)臨時表 "couple" 的字段上。此查詢也是合法的,但是得不到預(yù)期的效果。為了避免此錯誤,并能夠得到正確結(jié)果,可以使用類似如下的 SQL 語句:
select 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
語句中的括號不是必須的,但推薦您加上它。通過如上的語句結(jié)構(gòu),如果所有的表全部是關(guān)閉的,也不會出錯,結(jié)果也是正確的。
[返回]
3.如何加密表DBF文件數(shù)據(jù)
本人用VFP代碼編了一個DBF加密小程序,以供大家參考:
入口參數(shù)說明:
filename 表文件名
jm 。1 加密 =0 解密
加密思想:用低級文件函數(shù)改寫數(shù)據(jù)庫第一個字節(jié)
程序代碼如下:
parameters filename,jm
*處理文件名
if at('.',filename)=0
filename=filename+'.dbf'
endif
if jm=1 &&加密
handle=fopen(filename,2) &&打開文件
keybite=fread(handle,1) &&讀表頭第一個字節(jié)
=fseek(handle,0) &&指針移回第一個字節(jié)
=fwrite(handle,chr(asc(keybite)+2)) &&用比原來高2的ASCII字符改寫
=fclose(handle) &&關(guān)閉文件
else &&解密
handle=fopen(filename,2)
keybite=fread(handle,1)
=fseek(handle,0)
=fwrite(handle,chr(asc(keybite)-2)) &&用比原來低2的ASCII字符改寫
=fclose(handle)
endif
經(jīng)過這樣處理過的表就不能用USE打開,優(yōu)點是加密速度快,但不徹底但用
一個文本編輯器打開還是可以看到一些東西,怎樣進一步加密還有待探討。