明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

在VFP中怎么做出象IE4中的那樣的浮動按鈕

[摘要]先放上按鈕,將按鈕的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)點是加密速度快,但不徹底但用

 一個文本編輯器打開還是可以看到一些東西,怎樣進一步加密還有待探討。