當前位置:首頁 » 數據倉庫 » delphi資料庫模塊
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

delphi資料庫模塊

發布時間: 2022-11-29 21:26:23

❶ delphi和sql資料庫怎麼開發登錄模塊

下面的Ulogin 是我的項目中的一個單元,其實不管連哪種資料庫,道理都是一樣的, 下面的例子是主窗體在FormCreate 事件中首先打開Flogin. Flogin中判斷用戶,如果成功則到Fmain,反之提示錯誤.

lz看下,不明白的地方,hi我.

-----------------------------------

unit Ulogin;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB;

type
TFlogin = class(TForm)
GroupBox1: TGroupBox;
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
username: TEdit;
password: TEdit;
Q: TADOQuery;
procere Button2Click(Sender: TObject);
procere FormClose(Sender: TObject; var Action: TCloseAction);
procere Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Flogin: TFlogin;

implementation
uses Umain;

{$R *.dfm}

procere TFlogin.Button2Click(Sender: TObject);
begin
Fmain.Close;
Flogin.Close;
end;

procere TFlogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;

procere TFlogin.Button1Click(Sender: TObject);
begin
//Login
if ((trim(username.Text)='') or (trim(password.Text)='')) then
begin
Application.MessageBox('用戶名或者密碼不允許為空','警告',MB_ICONWARNING);
exit;
end;
try
Q.Connection:=Fmain.conn;
Q.SQL.Text:='select password,teamname,fullname from userinfo where username='''+username.Text+'''';
Q.Open;
except
on E: Exception do
begin
Application.MessageBox(PChar('資料庫錯誤:'+E.Message),'錯誤',MB_ICONERROR);
exit;
end;
end;
if Q.RecordCount=0 then
begin
Application.MessageBox('用戶名不存在','警告',MB_ICONWARNING);
exit;
end;
if (password.Text<>Q.Fields[0].AsString) then
begin
Application.MessageBox('用戶密碼錯誤','警告',MB_ICONWARNING);
exit;
end;
Fmain.username:=username.Text;
Fmain.teamname:=Q.Fields[1].AsString;
Fmain.fullname:=Q.Fields[2].AsString;
Fmain.sb.Panels[1].Text:=username.Text+'['+Fmain.fullname+','+Fmain.teamname+']';
Q.Close;
close;
end;

end.

❷ delphi7.0和SQL資料庫怎麼開發三層資料庫登錄模塊

建議你學習一下 RemoteObjects DataAbstract ,支持多種資料庫格式。

學習成本 也不高。

大體架構你可以看看例子。
大概講解一下。
服務端:
DataMole單元:
TDADriverManager,TADODriver 管理的是 資料庫引擎驅動部分,如ADO連接
TDAconnectionManager 管理的是連接參數,雙擊打開,可以設置資料庫連接參數。
其他的 是服務端的一些Session 等管理。

Form窗口:
TROhttpserver 配置的是 服務端採用http協議通訊,並開通該服務,並指定埠等。。。

Impl模塊窗口:
TDashcema 配置各種資料庫連接類型,如table,procere ,query,command 等等。 可以定義各種資料庫連接對象。
TDAstreamer 用於將各種封裝的數據通過該流對象壓縮成 二進制或者XML供客戶端調用。

客戶端 很簡單
Trohttpchnannel 實現http服務端連接
Troservice... 服務名稱
TDataAdapter 資料庫與服務端連接器
TmemDAtatalbe 數據表

❸ Delphi資料庫系統開發完全手冊的內容簡介

本書分三大部分,第一部分為Delphi編程篇,主要介紹使用Delphi開發資料庫系統必須掌握的技術,這些技術最大限度地與實際項目案例相結合。第二部分為SQL Server應用篇,主要介紹SQL Server資料庫安裝、管理、開發及維護的相關技術。第三部分為實例開發篇,精選了當前應用最廣泛的資料庫管理系統,內容包括定製自己的工作環境、物流配送管理系統、倉庫管理系統、銷售管理系統、工資管理系統、人事管理系統、客戶管理系統、固定資產管理系統和財務憑證管理系統。這些系統即可以獨立使用,也可作為企業綜合管理系統的重要組成部分。本書附有配套光碟。光碟提供了書中所有案例的全部源代碼,所有源代碼都經過精心調試,在Windows XP和Windows 2000下全部測試通過,保證能夠正常運行。本書內容精練、重點突出、實例豐富,是各級程序開發人員必備的和不可多得的參考書,本書也非常適合大中專院校師生學習參考。 圖書目錄 實例開發篇第15章定製自己的工作環境25315.1代碼編輯器常規選項設置25315.2代碼編輯器源文件選項設置25515.3代碼編輯器顯示狀態設置26115.4語法著色26215.5代碼智能選項設置26415.6環境選項參數設置26515.7窗體和組件設置26715.8個性化開發環境設置268第16章Delphi 7在物流配送中的應用27116.1物流配送管理系統概述27116.1.1開發背景27116.1.2運行環境27116.2系統調查27116.2.1手工流程27116.2.2需求分析27216.3系統分析27216.3.1系統功能27216.3.2業務流程27316.4資料庫設計27316.4.1資料庫概念設計27316.4.2資料庫邏輯結構設計27316.5處理過程分析27716.5.1配送審核處理過程分析27716.5.2配送開票處理過程分析27716.6主程序設計27816.6.1實現目標27816.6.2建立主窗體27916.6.3程序相關代碼28016.7數據模塊設計28116.8程序設計與編碼28216.8.1配送申請管理設計28216.8.2配送審核管理設計28816.8.3配送開票管理設計29116.8.4配送查詢管理設計29616.8.5系統登錄程序設計29816.9疑難問題分析解決30016.9.1如何在TImageList中存儲大圖標30016.9.2如何實現動態查詢30116.9.3如何去除重復行30116.9.4動態創建窗體30216.9.5如何實現配送開票查詢30316.9.6如何將表格中某些列設置為只讀30416.10程序調試及錯誤處理30516.10.1程序調試30516.10.2異常處理30716.11程序設計清單30816.12技術、經驗總結30816.12.1技術總結30816.12.2經驗總結30916.13程序的打包與發行309第17章Delphi 7在倉庫中的應用31217.1倉庫管理系統概述31217.1.1倉庫管理系統簡介31217.1.2系統功能描述31217.2系統調查31317.3需求分析31317.4系統設計31417.4.1系統流程圖31417.4.2業務流程31517.5資料庫設計31517.5.1資料庫概念設計31517.5.2資料庫邏輯結構設計31517.5.3數據字典31717.6處理過程分析31717.6.1商品入庫處理過程分析31717.6.2商品出庫處理過程分析31817.7主窗體設計31817.8數據模塊設計31917.9程序設計與編碼31917.9.1商品入庫管理設計31917.9.2商品出庫管理設計32617.9.3商品庫存查詢設計32817.10疑難問題分析解決32917.10.1使用TADODataSet組件時應該注意的問題32917.10.2雙擊DBGrid表格,如何顯示當條數據詳細信息33017.10.3如何判斷資料庫中是否有相同欄位的數據33117.10.4判斷進價、批發價、零售價是否輸入合法33217.11程序測試常見錯誤解決33217.12程序設計清單33517.13技術、經驗總結33617.13.1技術總結33617.13.2經驗總結336第18章Delphi在銷售中的應用33718.1銷售管理系統概述33718.1.1開發背景33718.1.2銷售管理系統簡介33718.1.3系統功能描述33718.2系統分析33818.2.1系統規劃33818.2.2系統流程圖33918.2.3業務流程33918.3資料庫設計33918.3.1資料庫概念設計33918.3.2資料庫邏輯結構設計34018.4主窗體設計34118.5狀態欄設計34218.6數據模塊設計34318.7銷售報表設計34318.8程序設計與編碼34618.8.1商品銷售管理設計34618.8.2銷售退貨管理設計35218.8.3客戶訂貨管理設計35518.8.4銷售查詢管理設計35818.9疑難問題分析解決36018.9.1如何防止單擊TBitBtn按鈕時關閉模式窗體36018.9.2使用非數據控制組件顯示和瀏覽數據36118.9.3在編輯框中只允許輸入數字36118.9.4按Enter鍵控制焦點的移動36118.9.5在銷售商品時,實現訂單銷售36218.9.6如何實現超期應收款查詢36218.10程序設計清單36218.11技術、經驗總結36318.11.1技術總結36318.11.2經驗總結36418.12系統的編譯與發行364第19章Delphi在工資中的應用36519.1工資管理系統概述36519.1.1系統任務36519.1.2設計目標36519.2需求分析36519.2.1業務調查36519.2.2系統規劃36619.3資料庫設計36619.3.1資料庫概念設計36619.3.2資料庫邏輯結構設計36719.3.3數據字典36819.4處理過程分析36919.4.1工資發放處理過程分析36919.4.2工資調整處理過程分析36919.5主窗體設計36919.6菜單設計37019.7數據模塊設計37119.8窗體模板設計37119.9程序設計與編碼37219.9.1員工基本工資管理設計37219.9.2員工浮動工資管理設計37719.9.3工資發放管理設計37919.9.4員工工資調整管理設計38219.10疑難問題分析解決38619.10.1使用TRVSystem組件編寫報表38619.10.2如何控製表格中焦點的移動38719.10.3編寫簡潔、靈活的代碼38719.10.4如何限製表格中某列的輸入38819.10.5員工工資核算38819.10.6查詢上月余額38919.11軟體測試38919.12程序設計清單39019.13技術、經驗總結39019.13.1創建視圖39019.13.2經驗總結392第20章Delphi在人事中的應用39320.1人事管理系統概述39320.1.1開發背景及意義39320.1.2系統目標39320.2系統分析39320.2.1系統規劃39320.2.2系統流程圖39520.3資料庫設計39520.3.1資料庫概念設計39520.3.2資料庫邏輯結構設計39520.4處理過程分析39620.4.1人員檔案處理過程分析39620.4.2人員調動處理過程分析39720.5主窗體設計39720.6數據模塊設計39820.7程序設計與編碼39820.7.1員工信息管理設計39820.7.2添加人員檔案程序設計39920.7.3修改人員檔案程序設計40220.7.4刪除人員檔案管理設計40720.7.5員工調動管理設計40820.8疑難問題分析解決0.8.1如何將數據表中的欄位值添加到下拉列表框中0.8.2如何防止用戶改變下拉列表框中的當前數據41220.8.3隱藏窗體的標題欄41320.8.4保存的實現方法探究41320.8.5圖片的切換41420.8.6控制按鈕是否可用41420.9程序調試與錯誤處理41520.10程序設計清單41620.11技術、經驗總結41720.11.1技術總結41720.11.2經驗總結41820.12程序的編譯與發行418第21章Delphi在客戶中的應用41921.1客戶管理系統概述41921.1.1客戶管理系統簡介41921.1.2系統功能描述41921.2系統分析41921.2.1系統規劃41921.2.2系統流程圖42121.2.3業務流程42121.3資料庫設計42121.3.1資料庫概念設計42221.3.2資料庫邏輯結構設計42221.4處理過程分析42321.4.1客戶基礎信息處理過程分析42321.4.2客戶信息呼叫處理過程分析42421.5主窗體設計42421.6菜單設計42621.7工具欄設計42721.8數據模塊設計42821.9程序設計與編碼42921.9.1客戶區域管理程序設計42921.9.2客戶級別管理程序設計43421.9.3客戶基礎信息管理程序設計43721.9.4客戶信息呼叫管理程序設計44321.9.5客戶反饋查詢管理程序設計44821.10疑難問題分析解決45121.10.1如何將TDBGrid中的內容居中顯示45121.10.2如何更改滑鼠指針形狀45221.10.3如何在控制項失去焦點時進行內容檢查45221.10.4如何防止向數據表中插入重復數據45221.10.5在表格中輸入商品數量,如何自動計算金額45321.10.6利用掩碼編輯控制項格式化字元串45321.11程序調試及錯誤處理45421.12程序設計清單45721.13技術、經驗總結45721.13.1技術總結45721.13.2經驗總結458第22章Delphi在固定資產中的應用45922.1固定資產管理系統概述45922.1.1開發背景及意義45922.1.2系統目標45922.2系統分析46022.2.1系統規劃46022.2.2系統流程圖46022.2.3業務流程46122.3資料庫設計46122.3.1資料庫概念設計46122.3.2資料庫邏輯結構設計46122.3.3數據字典46222.4處理過程分析46322.4.1添加固定資產處理過程分析46322.4.2計提折舊處理過程分析46322.5主窗體設計46322.6圖像列表設計46422.7數據模塊設計46522.8程序設計與編碼46622.8.1資產類別程序設計46622.8.2添加固定資產程序設計46722.8.3修改固定資產程序設計47122.8.4計提折舊程序設計47422.8.5數據備份程序設計47822.8.6系統初始化程序設計47922.9疑難問題分析解決48022.9.1如何創建存儲過程48022.9.2數據還原的實現48122.9.3查看SQL Server的備份文件48122.9.4利用循環語句清空界面數據48222.9.5固定資產基本概念48222.9.6固定資產計算公式48322.10程序測試48322.11程序設計清單48422.12技術、經驗總結48522.12.1技術總結48522.12.2經驗總結48622.13系統的編譯與發行486第23章Delphi在財務憑證管理系統中的應用487

❹ delphi如何實現窗口添加數據到資料庫里

你最好使用資料庫感知控制項,DBEDIT等等,如果你使用普通控制項,要多寫一些代碼,看樣子你對資料庫操作不太熟悉,應該多讀一些基礎的書。
1.你如果用資料庫感知控制項,保存的時候用post直接提交。如果用普通控制項,你需要把edit.text值賦給欄位再post提交
2.DM做公用數據模塊,你需要在調用的子窗里引用就行了,uses DM;
3,關於「怎樣做才能把子窗口的數據錄到父窗口的DBGrid里?」這個問題,一般這樣解決,在子窗體做一個向資料庫里錄入的功能,保存以後,父窗體重新查詢一下。

❺ 也教教我如何用delphi作資料庫管理系統吧

先想想你要達到什麼目的。把過程寫下來。構建你的數據結構(這個是關鍵,數據結構決定你對數據查詢、修改的難易程度)。
對著第二步,把每個模塊寫出來。
測試->修改直到一切達到你的要求.
這大概就是資料庫管理系統的整個過程吧

❻ 用delphi做的程序如何連接SQL資料庫應該怎麼操作

1. 新建一個FORM。在控制項欄找到ADO一欄,把裡面的ADOConnection和ADOQuery兩個各建立一個放在FORM里。這兩個控制項運行後是不可見的,所以你可以隨便放在FORM的任何位置。然後再找到DATA ACCESS一欄,把它下屬的DataSource控制項拖一個放到FORM里。用這三個控制項就可以建立連接了。

2.設置相關屬性,首先我們設置ADOConnection,這個控制項就是與數據連接的控制項。雙擊它彈出配置窗口,單擊BUILD..按鈕,出現資料庫鏈接屬性窗口,ACCESS資料庫就選擇有個JET4.0什麼的那個資料庫,如果是本地的資料庫可以在下拉列表選擇伺服器名稱或者自己直接輸入伺服器名稱(遠程的直接輸入IP即可),然後輸入登錄密碼和選擇資料庫。設置完成點擊測試連接,顯示成功說明鏈接正常,單擊完成退出設置。

3 ADOQuery這個控制項是用SQL操作資料庫的,在它的屬性欄有個connection屬性,點擊它的下拉菜單選擇剛剛建立好的ADOConnection1,DataSource控制項則是存放結果的地方,把它的DataSet屬性設置成ADOQuery1。這樣我們就可以通過調用ADOQuery來對資料庫進行操作了。

4 鏈接好資料庫以後就可以對資料庫進行操作了。最常見的用法是建立一個DBGRID,然後把他的connection屬性選成我們的Datasource1。如果你想預先設置好SQL語句的話,在ADOQUERY的左邊屬性欄里的SQL欄,點那個三個點的省略號輸入你想查詢的SQL語句。然後ACTIVE屬性設置成TRUE,這樣一運行,在DBGRID里就會顯示你的SQL查詢結果了。

❼ delphi開發資料庫,要用哪些組件

使用delphi自帶的 bde 或者 ado 或者 IB ,常用的資料庫開發都能對付。

❽ 想用delphi做一個遠程資料庫,MSSQL還是MYSQL好

MsSQL:比較穩定,如多不怕用盜版的話可以用;MYSQL:如果你的軟體不是商業軟體的話可免費使用;遠程連接的話要注意安全性,MYSQL可以用SSL加密傳輸,msSQL遠程連接用的不多,但是有方案說使用MSSQL存儲過程執行SQL語句的方法(其他SQL語句都設置許可權的不讓執行,只通過執行存儲過稱,存儲過程在執行普通SQL語句,並且傳輸給存儲過程的參數要加密和驗證)其遠程連接安全性可達美國軍方標准,但自己沒有驗證過,只是看到過;還有一種解決方案:如果你用DELPHI開發,可以用他提供的三層結構解決方案(遠程數據模塊),這樣資料庫就可以通過中間件連接了,不用直接對外網開放資料庫埠。但是這樣由於加入了中間件(遠程模塊部分)可能整個系統的穩定性會降低;

❾ delphi7.0和SQL資料庫怎麼開發三層資料庫登錄模塊

呵呵,問了這么多次問題呀..

這個周末我應該可以把框架和基本功能搭建完畢了,到時候發給你.

這個分我也賺了吧.:)

❿ delphi SQL查詢並顯示

DBGrid組件是用來顯示數據表的。

Delphi資料庫處理

第一節 BDE、ADO、InterBase和dbExpress

Delphi中處理資料庫主要有兩種方法,也就是BDE、ADO,從Delphi
6.0開始還加入了一種dbExpress方法。 另外,Delphi還提供了專門處
理Borland 公司自己的資料庫產品InterBase 資料庫的專門的方法。
BDE(Borland Databas Engine), 是Delphi中最古老的技術,從
delphi 2.0加入BDE 技術以後,一直是Delphi處理資料庫的事實上的標
准。BDE 是一個基於驅動程序的體系結構,每一種數據格式或數據源都
有一種驅動程序來驅動相近的數據源。BDE 可以很好的支持現在最流行
的ODBC API方法,
ODBC是一種C/C++ 應用程序編程介面(API ),無論是對任何一種
客戶/ 伺服器關系型資料庫管理系統(RDBMS ),還是最流行索引順序
訪問方法(ISAM)資料庫(Jet、Foxpro), 都能很好的訪問。
同時,由於BDE 的驅動程序主要直接來自於第三方開發商,所以,
對於像Oracle這些非微軟的資料庫,執行效率上比較高。正是這些特點,
使BDE 技術還是得到了很多資料庫開發程序員的歡迎。
ADO 技術是微軟提出來的處理關系型資料庫和非關系型資料庫的新
技術,它基於微軟被稱為OLE DB的數據訪問模式,它是專門為了給大范
圍商業數據源提供訪問而設計的,包括傳統的關系型數據表、電子郵件
系統、圖形格式、Internet資源等。ADO 所需內存更少,更適合大流量
和大事務量的網路計算機系統。
ADO 頂層有三個對象:Connection、Command、Recordset。
Connection用以指定數據源,建立和數據源的連接。
Command 對象用以對數劇源執行指定的命令,可以接受SQL 語句,
表和存儲過程的名稱,執行SQL 查詢,更新數據,插入紀錄等。
Recordset 對象表示的是來自表或命令執行結果的記錄全集,操縱
來自提供者的幾乎所有數據。
由於ADO 技術的迅速普及,從Delphi 5.0 開始,加入了ADO 技術
的模塊,並逐步成為Delphi資料庫設計的主流。但是,和VB的ADODC 相
比,它還是有所不同的,在數據綁定上,它更多的吸收了BDE 的特點,
以做到和原來的程序兼容,同時,它又可以接受標准ADO 技術的各種屬
性和方法,在接受這些屬性和方法時,它是和數據綁定控制項脫離的,當
然從某種意義上來說,這種方案提高了執行效率,給設計人員以更多的
選擇。
dbExpress 是Delphi 6.0加入的最新的資料庫模塊,它不使用緩存
可以快速瀏覽大量的數據,但是,不使用緩存就不能更改,所以它的標
准方式是只讀的。它一個重要的特點是交叉平台,可以和Linux 資料庫
連接,速度相當快。
下面的討論,將以ADO 技術為主線,最後再說明BDE 和dbExpress
的應用方式。

第二節 ADO 面板的主要組件

ADO 面板一共有7 個組件:

ADOConnection: 主要用於建立資料庫的連接;
ADOdataSet:ADO 提取和操作資料庫的主要數據集,可以直接連接
到資料庫,也可以通過 ADOConnection連接到資料庫。
ADOtable:主要用以操作和提取單個基表的數據,可以直接連接到
資料庫,也可以通過 ADOConnection連接到資料庫。
ADOquery:通過SQL 語言提取數據,其連接資料庫的方式和前兩種
一樣。
ADOStoredProc: 這個組件專門用於運行資料庫中的存儲過程。
ADOCommand:該組件用於運行一些SQL 命令,這個組件可以和支持
數據集的組件一起使用,也可以直接從一個基表中提取一個數據集。
RDSConnection: 一個進程或一台計算機傳遞到另一個進程或計算
機的數據集合。
為了連接數據綁定控制項,上述組件往往要和處於Data Access 中的
Datasource配合使用。
可以看出,和VB的ADODC 不同的,Delphi中解決同一個問題提供了
多種方案,看起來似乎增加了麻煩,但是卻可以給程序員更大的自由空
間,便於設計出高效率的資料庫程序來。
下面通過幾個例子來說明ADO 控制項的用法。

第三節 ADOtable組件

ADOtable、ADOdataSet、ADOquery和ADOStoredProc都繼承了同一
個父類TCustomADODataSet,所以,在屬性事件和方法上有很多相似的
地方,但它主要是針對資料庫中的表進行操作。

ADO -〉ADOtable
屬性:
Name='控制項名'
ConnectionString='連接字元串'
可以通過點擊右邊的按鈕,通過向導建立數據源。有時候需要
知道相對路徑,可以用下面的方法找到程序當前的路徑:

tpath:=ExtractFilepath(Application.Exename);

文件名:=Tpath+'..\data\Test.mdb'

表明資料庫在當前程序上一層的Data文件夾下。

TableName='表名'
Active=true

這就激活了數據源,為了和綁定控制項聯系,要增加一個DadaSource
控制項。事實上,所有的綁定控制項都是和DadaSource聯系。

Data Access-〉DadaSource
屬性:
Dataset=ADOtable.Name

加入綁定控制項:
Data Controls-〉

DBgrid(表格)
屬性
DadaSource='DadaSource.Name'

DBNavigator(導航條)
屬性
DadaSource='DadaSource.Name'

運行一下可以看出關系

下面介紹一下ADOtable的一些重要的方法,這些方法大部分和Table
是兼容的。
為了便於敘述,ADOtable控制項的Name定為 ADOtable1

1)移動指針

第一個: ADotable1.First;
最後一個: ADotable1.Last;
下一個: ADotable1.Next;
前一個: ADotable1.Prior;

2)從欄位中取出數據
通過如下方法可以訪問欄位的值

ADOtable1.FieldValues['欄位名']
ADOtable1.Field[索引值]

在讀寫欄位的時候,又是根據需要可以加上強制類型轉換
例如:
Edit1.text:=ADOtable1.Field[0].AsString;

用下面的方法可以去除欄位的性質:

ADOtable1.fielddefs[索引值].name; 欄位名
ADOtable1.fielddefs[索引值].Size; 欄位大小
ADOtable1.fielddefs[索引值].Datatype; 欄位屬性

3)修改數據:
修改數據的時候,需要先建立EDIT方法,然後用Post方法才能真
正的寫入。

ADOtable1.edit;
ADOtable1.FieldValues['姓名']:='王秀琴';
ADOtable1.post;

4)增加一條空紀錄: ADOtable1.append;

新增紀錄也可以用如下方法,在新增紀錄的同時輸入數據

ADOtable1.appendRecord(xxx,xxx,xxx,....);

5)刪除當前紀錄:ADOtable1.delete;
如果在ADOtable1的OnBeforeDelete方法中寫下:
if messagedlg('確實要刪除嗎?',mtinformation,[mbyes,mbno],
0)=mrno then abort();
可以實現刪除前的提示。

6)過濾
可以用如下的方法實現數據的過濾

在ADOtable1的OnFilterRecord方法中寫下:
Accept:=(條件);

然後

ADOtable1.filtered:=true; 為實現過濾。
ADOtable1.filtered:=false; 為解除過濾。

7)指針在文件的頭尾

指針在最後一條記錄之後 ADOtable1.Eof
指針在第一條記錄之前 ADOtable1.Bof

如此可以實現對資料庫的遍歷

form1.ADOtable1.first;
while not form1.ADOtable1.eof do
Begin
.......
form1.ADOtable1.next;
End;

8)此外, ADOtable組件還繼承了ADO 中的RecordSet對象幾乎
全部屬性和方法,簡述如下:

with adoTable1.Recordset do
begin

//屬性
PageSize 一頁所包含的記錄數
PageCount 數據的頁數
AbsolutePage; 當前記錄所在頁
AbsolutePosition; 當前記錄的序號位置
BOF; 指針在第一個記錄之前
EOF; 指針在最後一個記錄之後

//方法
AddNew fieldList,Values; 創建新記錄,其中fieldList為用數
組表示的欄位名集,Values為用數組表
示的數據集。
Cancel; 取消上一步所作的修改
Update Fields,Values; 保存對當前記錄所作的修改
Delete; 刪除當前記錄
Move(n); 移動n 條記錄
MoveFirst; 移動到第一條紀錄
MoveLast; 移動到最後一條紀錄
MoveNext 移動到下一條紀錄
MovePrevious 移動到上一條紀錄
Requery; 通過從新執行對象所基於的查詢,以
更新RecordSet 對象中的數據。
end;

使用Recordset 對象來處理數據集的數據,會發現數據幫定控制項的指
針一般不會跟著移動,這實際上給設計者提供了另一個在後台快速處理數
據的方法。
附錄:關於TActionList控制項的使用

在Standard面板,提供了一個TActionList 控制項,它集中了大部分按
鈕的使用方法,可以簡化按鈕的設計。
方法:
調入TActionList,雙擊,可以看到一個面板,右鍵 -〉New Standard
Action 選擇 Datasat下的適當的控制,可以選擇多個。
以後加入的開關,只要在屬性Action 中選擇適當的項目就可以了,不
需要專門編程,實例見「ActionList應用」。

第四節 ADOQuery組件

和ADOtable組件一樣,ADOquery繼承了同一個父類TCustomADODataSet,
所以,上面說到的ADOtable屬性事件和方法基本上是通用的,但它主要是
針對資料庫中的SQL 命令進行操作。
下面主要說一下ADOquery特殊的地方。

1)SQL 屬性
SQL 是TStrings類型的屬性,包含了ADOquery組件要執行的SQL 命令,
是ADOquery最為重要的屬性之一。
在應用程序中,需要調用Open方法或者ExecSQL 方法來執行在SQL 中
的命令。在設計階段,可以利用屬性編輯起來編寫。
例如:
Width ADOquery do
Begin
//重新寫入時,要關閉原來的查詢
Close;
width SQL do
Begin
//因為Add是在原來的基礎上加入,所以先清除原來的SQL命令
Clear;
Add('selsct 編號,姓名,獎金')
Add('From 獎金錶')
End;
//執行SQL 命令
Open;
End;

查詢命令也可以這樣來寫:

s1:='編號';
s2:='姓名';
s3:='金額';
with ADOquery1 do
begin
sql.Clear;
SQL.Add('select ');
SQL.Add(s1+','+s2+','+s3);
SQL.Add(' From 獎金 ');
execsql;
active:=true;
end;

效果是一樣的。

第五節 ADOConnection 和 ADODataSet

雖然ADOTable和ADOQuery組件可以非常簡單的連接資料庫,但是當需
要更加精細的控制資料庫的時候,往往需要應用ADO 更多的方法,我們知
道,支撐ADO 的主要由Connection,Command,Recordsrt三個對象組成,
對應的就有ADOConnection和ADOCommand控制項,而Recordsrt對象屬性和方
法,封裝在ADODataSet中,同時ADODataSet本身,也具備和ADOtable組件
相同的對數據綁定控制項控值的屬性和方法。
這就大大提高了對資料庫的控制能力。
在ADO 頂層有三個對象中Connection處在最頂層,用以指定數據源,
建立和數據源的連接。所以,ADOConnection必須和其它的數據控制項連接
才有效,最常用的就是和ADODataSet配合。
下面首先介紹連接方法,然後再討論其它的問題

1)ADOConnection的加入和連接

加入ADOConnection
屬性:ConnectionString='連接字元串'

加入ADODataSat
屬性:Connection='ADOConnection1' ..... (ADOConnection,Name)
CommandType=cmdtable ...使用表連接
CommandText 根據上面的選擇,或選擇表,或出現SQL 編輯框。
Active=True 激活。
加入DataSource
屬性:Dataset=ADODataSat 完成連接,再連接數據綁定控制項。

2)ADOConnection的重要屬性和方法

屬性:

a).Attributes
設置連接的資料庫自動處理事務的能力
xCommitRetaining:提交一個事務後自動開始一個新事務
xAbortRetaining :回退一個事務的同時開始一個新事務

b).Connected
標識和資料庫的連接受否處於激活(True)

方法:

c).Open(UserID,PassWord)
打開一個連接(可以提供用戶名和密碼)

d).Cancel
關閉資料庫的連接

e).Close
釋放所有的系統關聯資源

f).Execute 執行一個SQL 命令。
完整的表述是

Execute(SQL命令,該命令設計的記錄數目,Option)

其中,Option的值如下

eoAsyncExecute 非同步執行指定的命令
eoAsyncFetch 給定Cache屬性的值後,再非同步的取得數據
eoAsyncFetchNonBlocking 非阻塞式線程執行
eoExecuteNoRecords 沒有返回紀錄

g).GetProcereNames(List:Tstring);

獲取資料庫伺服器上的存儲過程名稱,過程名保留在List參
數中。
f).GetTableNames(List:Tstring;SystemTables:Boolean=False)

獲取資料庫的數據表,表名存放在List參數中,SystemTables
指示是否獲取資料庫系統表的名稱,系統表是關於資料庫類型定義
和用戶信息的數據表,是資料庫本身自動產生的。在特殊的設計中,
這個表格可能會有用。

3)ADODataSet的屬性和方法
我們在ADOTable中討論的屬性和方法,幾乎都可以在ADODataSet中得
到應用,但還有幾個特殊的屬性:

CommandType

主要用於控制CommandText屬性的狀態,其中:

cmdtable ...CommandText使用「表名」連接
(內部是做了SQL 對各列的查詢);
cmdTableDirect ...CommandText使用「表名」連接
(內部不做SQL ,而是真正的表名連接);
cmdtext ....使用SQL命令文本;
cmdfile ....CommandType屬性值作為持久的文件名;
cmdStoredProc...CommandType屬性值作為存儲過程名稱
來計算;
cmdUnKnown ....不知道(默認為SQL)

CommandText
根據CommandType的設置,向提供者發出「表名」或SQL 命令。