<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇開發(fā)語言培訓專區(qū)Delphi程序設計 → Delphi中的Access技巧集


      共有6475人關注過本帖樹形打印

    主題:Delphi中的Access技巧集

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發(fā)短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    Delphi中的Access技巧集  發(fā)帖心情 Post By:2010-12-14 11:02:52

     
    1.DELPHI中操作Access數(shù)據(jù)庫(建立.mdb文件,壓縮數(shù)據(jù)庫) IT我最牛-程序員的技術討論與分享園地Hff B&rj3u:Z
    以下代碼在WIN2K,D6,MDAC2.6下測試通過, IT我最牛-程序員的技術討論與分享園地X8C'V)z/Y*K0`O_
    編譯好的程序在WIN98第二版無Access環(huán)境下運行成功.
    G#i;k&yW1j0//在之前uses ComObj,ActiveX IT我最牛-程序員的技術討論與分享園地xA N/v8M5ax4_
    //聲明連接字符串 IT我最牛-程序員的技術討論與分享園地 DVB2i~1G+T.V
    Const IT我最牛-程序員的技術討論與分享園地0~FZRe*p~d []
    SC IT我最牛-程序員的技術討論與分享園地z5C9Xz.seN+v
    +'Jet OLEDB:Database Password=%s;';
    $Uio'L{ O e)I0

    //============================================================================= IT我最牛-程序員的技術討論與分享園地2y|CDr0GV
    // Procedure: GetTempPathFileName IT我最牛-程序員的技術討論與分享園地 OPB |XCAQ
    // Author : ysai
    lV#H0|GW0// Date : 2003-01-27
    Wii3m xq7Z~PW0// Arguments: (None) IT我最牛-程序員的技術討論與分享園地I @\?r.j'pt
    // Result : string IT我最牛-程序員的技術討論與分享園地&~kr(}\i2MUh
    //=============================================================================
    f ? \8o:[7_C0function GetTempPathFileName():string;
    :Bnr%[2m9v0//取得臨時文件名 IT我最牛-程序員的技術討論與分享園地nU4w~S3f"\9G
    var
    6?[vh|&_%S0SPath,Sfile&:array [0..254] of char;
    DEmTKw`(H;KS0begin
    %])xJ,V%N+eYN7M:P0GetTempPath(254,SPath);
    ^"^/L?!T&YAm:V#t!mP0GetTempFileName(SPath,'~SM',0,SFile); IT我最牛-程序員的技術討論與分享園地!P\ b/AI"p D
    result:=SFile;
    :h/G"fY7z6k0DeleteFile(PChar(result));
    G(WzO a1i [^z)b0end; www.iTbulo.com0sJZ0


    G(WzO a1i [^z)b0end; www.iTbulo.com0sJZ0.n,M.yP B8U3g6~2f0

    @+Y6Y |#^opfc\^N.b:f0//=============================================================================
    ,g7b,O%^C0// Procedure: CreateAccessFile
    )Y2y RWO.c0// Author : ysai IT我最牛-程序員的技術討論與分享園地1ZRS6H;R!O
    // Date : 2003-01-27
    1lLR7?5Fdfm#E]0// Arguments: FileName:String;Password:string='' IT我最牛-程序員的技術討論與分享園地#l5V0y6d1]y[_PI
    // Result : boolean IT我最牛-程序員的技術討論與分享園地%qW/e1Rg3b
    //=============================================================================
    m8CU3E8xa(_0pj0function CreateAccessFile(FileName:String;Password:string=''):boolean;
    -b,mD4x9T MTa/R0//建立Access文件,如果文件存在則失敗
    .\b)?!MIO0var
    yy/ET x0STempFileName:string;
    rPd:k@$l:g'k[1f'D0vCatalog:OleVariant; IT我最牛-程序員的技術討論與分享園地w _N#^RJ)u-f k
    begin
    LtD3y@"{ j&`*T q0STempFileName:=GetTempPathFileName;
    X&P7vn%Yb%e J&t0try
    pk`7O#txMPQ&C0vCatalog:=CreateOleObject('ADOX.Catalog'); IT我最牛-程序員的技術討論與分享園地)[)V$jo3m5Qa xL
    vCatalog.Create(format(SConnectionString,[STempFileName,Password])); IT我最牛-程序員的技術討論與分享園地 O8A IXYZ.}$l0A~3v6b
    result:=CopyFile(PChar(STempFileName),PChar(FileName),True); IT我最牛-程序員的技術討論與分享園地8D i V&B%H-wb{}3G@
    DeleteFile(STempFileName); IT我最牛-程序員的技術討論與分享園地E8z%QM)x8O7O
    except IT我最牛-程序員的技術討論與分享園地X"I^Kprjy E\
    result:=false;
    1F^W _ez0end;
    S&N!]L+t^0end; www.iTbulo.com0sJZ0IT我最牛-程序員的技術討論與分享園地|qq z*a7pTkv h

    0cP3^6HE9ct;Vg$S0//============================================================================= IT我最牛-程序員的技術討論與分享園地6Ed+]0pui
    // Procedure: CompactDatabase IT我最牛-程序員的技術討論與分享園地/J SK3q;Hh
    // Author : ysai IT我最牛-程序員的技術討論與分享園地7e$y BT6d:QA b5d
    // Date : 2003-01-27
    [ov7A+P0ss0// Arguments: AFileName,APassword:string
    P1W'Xi|0// Result : boolean IT我最牛-程序員的技術討論與分享園地'J,~5M!}g\'D PQ
    //=============================================================================
    s#r4[ u+J1b~0@!e0function CompactDatabase(AFileName,APassword:string):boolean;
    ~1VsUD0//壓縮與修復數(shù)據(jù)庫,覆蓋源文件
    uN5e ?X0var IT我最牛-程序員的技術討論與分享園地l9GF(\ ?:}AYf]
    STempFileName:string; IT我最牛-程序員的技術討論與分享園地'U:y@ v/m"V,R m@
    vJE:OleVariant; IT我最牛-程序員的技術討論與分享園地_Af6qQ0C
    begin
    7] \I/g)Z|[0STempFileName:=GetTempPathFileName; IT我最牛-程序員的技術討論與分享園地*m^)kf3O^
    try
    vB%T4p2Ak?a0vJE:=CreateOleObject('JRO.JetEngine');
    Nt)v%J(E e*~ qT8q/?*]0vJE.CompactDatabase(format(SConnectionString,[AFileName,APassword]), IT我最牛-程序員的技術討論與分享園地 h"xf AUx
    format(SConnectionString,[STempFileName,APassword])); IT我最牛-程序員的技術討論與分享園地 |Vi)V ^-t7RC)|
    result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
    3[6j1T,gI0DeleteFile(STempFileName);
    W0Jt9\h$a9V.z ID:^.{0except IT我最牛-程序員的技術討論與分享園地 LS+j+mFn~9Ca/b m
    result:=false; IT我最牛-程序員的技術討論與分享園地!l\6iD(lv7}
    end; IT我最牛-程序員的技術討論與分享園地"nRv"P m*KZ
    end; www.iTbulo.com0sJZ0

    o9mk*C.f*V5^(W1_/h0

    \G(q|#w0u.Xu0    //=============================================================================
    ycSQ yE0// Procedure: ChangeDatabasePassword IT我最牛-程序員的技術討論與分享園地C ^f` l&G9|4|
    // Author : ysai
    ,d6t+M.g3J7k^0// Date : 2003-01-27
    1DG]JF II0// Arguments: AFileName,AOldPassword,ANewPassWord:string
    $ni%]h9O8o@!mu{0// Result : boolean
    PJ9p6k:M0//============================================================================= IT我最牛-程序員的技術討論與分享園地P6Lz9i[cF/R3H7W
    function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean;
    ;`yy U(a'DJ0//修改Access數(shù)據(jù)庫密碼
    r]F(ay4l+k0var IT我最牛-程序員的技術討論與分享園地}%l#}.M)SA*A*v
    STempFileName:string; IT我最牛-程序員的技術討論與分享園地Y^ |-S"ia
    vJE:OleVariant; IT我最牛-程序員的技術討論與分享園地u&n? I,hb
    begin
    k7W(XYi9R0^Q_1s2@0STempFileName:=GetTempPathFileName;
    3Mkm%e{7C`-A w&\0try
    5zhs,|m3Z [V9N0v2Q0vJE:=CreateOleObject('JRO.JetEngine');
    m&R+]/G/jf:z0gD0vJE.CompactDatabase(format(SConnectionString,[AFileName,AOldPassword]), IT我最牛-程序員的技術討論與分享園地zN C/MUIDx!G
    format(SConnectionString,[STempFileName,ANewPassword]));
    w6R"Q&dE%q[f@Y0result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
    -v H$@ T!Z;v0DeleteFile(STempFileName); IT我最牛-程序員的技術討論與分享園地![W y,Gpq
    except
    i$x%AU2u_w mC0result:=false; IT我最牛-程序員的技術討論與分享園地C5PXr6bJIB]
    end;
    !p(A,l6]z^ej1t0end; www.iTbulo.com0sJZ0IT我最牛-程序員的技術討論與分享園地bi{1dt3@q

    IT我最牛-程序員的技術討論與分享園地!F j3a,D,mz3I8J/d9I3J$S

    2.Access中使用SQL語句應注意的地方及幾點技巧 IT我最牛-程序員的技術討論與分享園地`!Bd F8k.Ow0_;e
    以下SQL語句在Access XP的查詢中測試通過 IT我最牛-程序員的技術討論與分享園地XR6p#X Dw:Y!pvYr n
    建表:
    ?UCXzP7?R0Create Table Tab1 ( IT我最牛-程序員的技術討論與分享園地sv6j3UQ#\0V
    ID Counter, IT我最牛-程序員的技術討論與分享園地1c#@w)qxsj
    Name string,
    ^wbV+WN^3a#P1l e0Age integer, IT我最牛-程序員的技術討論與分享園地m Vsqqoq
    [Date] DateTime); IT我最牛-程序員的技術討論與分享園地7z4}1DaIp4^
    技巧: IT我最牛-程序員的技術討論與分享園地lPQZJ9Zfv8@T
    自增字段用 Counter 聲明.
    M"YQ3zG,ccO O^0字段名為關鍵字的字段用方括號[]括起來,數(shù)字作為字段名也可行. www.iTbulo.com0sJZ0

    Y{*OV` N0 IT我最牛-程序員的技術討論與分享園地1d6d+y6_*dr"l G

    建立索引:
    z'w/YZT3lG D4Z0下面的語句在Tab1的Date列上建立可重復索引
    W6M"X&d"m&}h0Create Index iDate ON Tab1 ([Date]); IT我最牛-程序員的技術討論與分享園地E6r-r,A#^ u:{
    完成后Access中字段Date索引屬性顯示為 - 有(有重復).
    Ll)@y(d0下面的語句在Tab1的Name列上建立不可重復索引 IT我最牛-程序員的技術討論與分享園地1NK!t:b7g^t
    Create Unique Index iName ON Tab1 (Name); IT我最牛-程序員的技術討論與分享園地z^0{7Ft4|ZqbPV
    完成后Access中字段Name索引屬性顯示為 - 有(無重復).
    !R@0UDo` Q}o e0下面的語句刪除剛才建立的兩個索引 IT我最牛-程序員的技術討論與分享園地5d!Sg [r
    Drop Index iDate ON Tab1;
    W QuVU,_[wQ0Drop Index iName ON Tab1; www.iTbulo.com0sJZ0

    %{T'Htk-p9p(?.[0 IT我最牛-程序員的技術討論與分享園地)pK%{!v` |/QU$n

    Access與SQLSERVER中的UPDATE語句對比: IT我最牛-程序員的技術討論與分享園地 oX `ZO'vt
    SQLSERVER中更新多表的UPDATE語句:
    W(X?/N @_(Do$@I0UPDATE Tab1 IT我最牛-程序員的技術討論與分享園地#VU"k9p\z$z
    SET a.Name = b.Name
    $X3jL1]8F H K0FROM Tab1 a,Tab2 b IT我最牛-程序員的技術討論與分享園地-roheo"rh#M};c
    WHERE a.ID = b.ID;
    d ?h9HEK0同樣功能的SQL語句在Access中應該是
    $i.f9A*yz'e0 UPDATE Tab1 a,Tab2 b IT我最牛-程序員的技術討論與分享園地 \V d/~)z1X^'v
    SET a.Name = b.Name
    An{S-t#F9p |S3xL0WHERE a.ID = b.ID; IT我最牛-程序員的技術討論與分享園地k"g |,z9V)TCx p j(}
    即:Access中的UPDATE語句沒有FROM子句,所有引用的表都列在UPDATE關鍵字后. IT我最牛-程序員的技術討論與分享園地n7G:hxQ9sv1N
    上例中如果Tab2可以不是一個表,而是一個查詢,例:
    ,Gzs9cE V4?1[ f0UPDATE Tab1 a,(Select ID,Name From Tab2) b
    D3\Jg3G[C0SET a.Name = b.Name IT我最牛-程序員的技術討論與分享園地;|;Li"rg)T d`
    WHERE a.ID = b.ID;

    a%m(r4Y#`0o&CK0www.iTbulo.com0sJZ0IT我最牛-程序員的技術討論與分享園地 }2|2J \I

    IT我最牛-程序員的技術討論與分享園地'c1A9h bq2P!a$O

    訪問多個不同的Access數(shù)據(jù)庫-在SQL中使用In子句: IT我最牛-程序員的技術討論與分享園地7it3Oq5g \X D
    Select a.*,b.* From Tab1 a,Tab2 b In 'DB2.mdb' Where a.ID=b.ID;
    )]tZ E!G)bYW;L%e C-c0上面的SQL語句查詢出當前數(shù)據(jù)庫中Tab1和DB2.mdb(當前文件夾中)中Tab2以ID為關聯(lián)的所有記錄. IT我最牛-程序員的技術討論與分享園地;]4CHA?V
    缺點-外部數(shù)據(jù)庫不能帶密碼. IT我最牛-程序員的技術討論與分享園地K7m!YE['gQ^ YC,N
    補充:看到ugvanxk在一貼中的答復,可以用 IT我最牛-程序員的技術討論與分享園地Y#_p?QY
    Select * from [c:\aa\a.mdb;pwd=1111].table1; IT我最牛-程序員的技術討論與分享園地 i1t x8F xj5K7kOc


    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    Delphi中的Access技巧集








    簽名
    主站蜘蛛池模板: 最新日韩在线观看| 蜜臀av性久久久久蜜臀aⅴ麻豆| 无码国产伦一区二区三区视频| 亚洲欧美日韩精品久久亚洲区色播| 精品国产线拍大陆久久尤物| 国产欧美va欧美va香蕉在| eeuss影院www天堂免费| 护士在办公室里被躁视频| 亚洲国产成+人+综合| 波多野结衣忆青春| 四虎永久免费观看| 韩国无遮挡羞羞漫画| 国产美女在线一区二区三区| 不卡高清av手机在线观看| 日本天堂免费观看| 亚洲大片免费观看| 武侠古典一区二区三区中文| 学霸c了我一节课| 亚洲av最新在线网址| 精品香蕉在线观看免费| 国产福利精品一区二区| mm131美女爱做视频在线看| 最近免费中文字幕mv在线电影| 免费乱理伦片在线直播| 精品欧洲videos| 国产孕妇孕交一级毛片| 91精品国产综合久久香蕉| 无码无套少妇毛多69XXX| 亚洲国产精品激情在线观看| 波多野结衣中文丝袜字幕| 啊灬啊别停灬用力啊呻吟| 色综合久久久久久久久五月| 国产欧美日韩综合精品一区二区| 99爱免费观看视频在线| 日日噜噜噜夜夜爽爽狠狠| 亚洲午夜久久久影院伊人| 欧美爽爽爽爽爽爽视频| 免费高清a级毛片在线播放| 美女扒开尿口给男人桶爽视频| 国产成人片无码视频在线观看| 91色综合综合热五月激情|