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

字號:

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