Delphi用ADO操作数据库完整示例(转)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, RzDBGrid, ExtCtrls, RzPanel,ComCtrls, RzBckgnd, RzButton, Buttons, RzCmboBx;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
ADOQuery1: TADOQuery;
Label1: TLabel;
RzGroupBox1: TRzGroupBox;
RzDBGrid1: TRzDBGrid;
RzGroupBox2: TRzGroupBox;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Edit2: TEdit;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit4: TEdit;
Label6: TLabel;
Edit5: TEdit;
RzSeparator1: TRzSeparator; StatusBar1: TStatusBar; SpeedButton1: TSpeedButton; SpeedButton3: TSpeedButton; SpeedButton4: TSpeedButton; SpeedButton2: TSpeedButton; SpeedButton5: TSpeedButton; SpeedButton6: TSpeedButton; SpeedButton7: TSpeedButton; RzGroupBox3: TRzGroupBox; RzComboBox1: TRzComboBox; Edit6: TEdit;
RzButton1: TRzButton;
Label7: TLabel;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure SpeedButton1Click(Sender:
TObject);
procedure SpeedButton3Click(Sender:
TObject);
procedure SpeedButton4Click(Sender:
TObject);
procedure SpeedButton2Click(Sender:
TObject);
procedure ShowData; //记得在此位置加入自定义过程的申明procedure Edit6Click(Sender:
TObject);
procedure RzButton1Click(Sender:
TObject);
procedure RzComboBox1Click(Sender:
TObject);
procedure SpeedButton5Click(Sender:
TObject);
procedure SpeedButton6Click(Sender:
TObject);
procedure SpeedButton7Click(Sender:
TObject);
procedure Timer1Timer(Sender:
TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.ShowData; //自定义过程如果用DBEdit控件绑定字段就不用这样,
begin
Edit1.Text:
=ADOQuery1.Fields[0].Value;
Edit2.Text:
=ADOQuery1.Fields[1].Value;
Edit3.Text:
=ADOQuery1.Fields[5].Value;
edit4.Text:
=ADOQuery1.Fields[3].Value;
edit5.Text:
=ADOQuery1.Fields[4].Value;
end;
procedure TForm1.FormCreate(Sender:
TObject);
var
sqlstr:
string;
begin
sqlstr:
='select * from abc'; //数据库连接字符串,打开数据库表,初始化查询
with ADOQuery1 do
begin
ConnectionString:
='Provider=Microsoft.Jet.OLEDB.4.0;Data
Source='+ExtractFilepath(Application.ExeName)+
'a.MDB;Persist Security Info=True';
SQL.Clear;
SQL.Add(sqlstr);
Open;
end;
ShowData;
StatusBar1.Panels.Items[1].Text:
='当前数据库中共有
'+''+IntToStr(Form1.ADOQuery1.Recordcount)+''+'条记录'; StatusBar1.Panels.Items[0].Text:
='准备就绪!';
end;
procedure TForm1.SpeedButton1Click(Sender: TObject); //
begin
ADOQuery1.First;
ShowData;
end;
procedure TForm1.SpeedButton3Click(Sender: TObject); //
begin
ADOQuery1.Prior;
ShowData;
end;
procedure TForm1.SpeedButton4Click(Sender: TObject); //
ADOQuery1.Next;
ShowData;
end;
procedure TForm1.SpeedButton2Click(Sender: TObject); //
begin
https://www.doczj.com/doc/7311467215.html,st;第一条上一条
下一条
最后一条ShowData;
end;
procedure TForm1.Edit6Click(Sender:
TObject); //简单判断后激活查询按钮begin
if RzComboBox1.Text<>'请选择查询字段'then
begin
RzButton1.Enabled:
=True;
end
else
exit;
procedure TForm1.RzButton1Click(Sender:
TObject); //查询按钮处理过程var
s:
string;
begin
if (RzComboBox1.Text='根据工号查询')and (Edit6.Text<>'') then
begin
s:
='Select * from abc where sCardID like''%'+Edit6.Text+'%''';end;
if (RzComboBox1.Text='根据姓名查询')and (Edit6.Text<>'') then
begin
s:
='Select * from abc where sName like''%'+Edit6.Text+'%''';
end;
if (RzComboBox1.Text='根据身份证号码查询')and (Edit6.Text<>'') then begin
s:
='Select * from abc where sID like''%'+Edit6.Text+'%''';
end;
if (RzComboBox1.Text='根据地址查询')and (Edit6.Text<>'') then
begin
s:
='Select * from abc where sAddress like''%'+Edit6.Text+'%''';//showmessage (s);
end;
with ADOQuery1 do
begin
try //此处加入错误捕获处理机制
SQL.Clear;
SQL.Add(s);
open;
except
MessageBox(Handle,'您选择的查询字段跟输入的值不匹配,请检查后重新输入!'+#13+'"例如您选择了根据身份证号码查询就只能在文本框中输入数字,而不能输入字符串"'
,'警告信息',MB_ICONEXCLAMATION);
end;
ShowData;
StatusBar1.Panels.Items[1].Text:
='此次查询共有
'+''+IntToStr(Form1.ADOQuery1.Recordcount)+''+'条符合条件的记录';
end;
end;
procedure TForm1.RzComboBox1Click(Sender:
TObject);
begin
Edit6.Text:
='';
end;
procedure TForm1.SpeedButton5Click(Sender: TObject); //添加空行begin
with ADOQuery1 do
begin
Append;
end;
end;
procedure TForm1.SpeedButton6Click(Sender: TObject); //
begin
with ADOQuery1 do
begin
edit;
post;
end;
end;
procedure TForm1.SpeedButton7Click(Sender: TObject); //
begin
ADOQuery1.Delete;
end;
procedure TForm1.Timer1Timer(Sender: TObject); //
begin
StatusBar1.Panels.Items[3].Text:
=DateTimeToStr(Now);
end;
end.保存所有记录,删除记录
状态栏显示时间