DELPHI操作ACCESS数据库(两种方式噢)dataset与table

来源:互联网 发布:mac os 磁盘清理工具 编辑:程序博客网 时间:2024/06/08 05:21
unit Unit1; 

interface 

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

type 
TForm1 = class(TForm) 
Button1: TButton; 
Button2: TButton; 
Button3: TButton; 
procedure Button1Click(Sender: TObject); 
procedure Button2Click(Sender: TObject); 
procedure Button3Click(Sender: TObject); 
private 
FConnection: TADOConnection; 
FDataSet: TADOQuery; 
public 
constructor Create(AOwner: TComponent); override; 
destructor Destroy; override; 
end; 

var 
Form1: TForm1; 

implementation 

{$R *.dfm} 

uses 
ActiveX; 

const 
CONN_JETOLE_P = 'Provider=Microsoft.Jet.OLEDB.4.0;' + 
'Data Source=%s;Persist Security Info=False;' + 
'Jet OLEDB:Database Password=%s'; 

//添加数据 
procedure TForm1.Button1Click(Sender: TObject); 
begin 
FDataSet.SQL.Text := 'SELECT * FROM [表名] WHERE 1=0'; 
FDataSet.Open; //打开 
FDataSet.Append; //开始添加数据 
FDataSet.FieldByName('字段名1').Value := '值'; 
FDataSet.Post; //提交,使添加生效 
end; 

//修改数据 
procedure TForm1.Button3Click(Sender: TObject); 
begin 
FDataSet.SQL.Text := 'SELECT * FROM [表名] WHERE 条件'; 
FDataSet.Open; //打开 
FDataSet.Edit; //开始修改数据 
FDataSet.FieldByName('字段名1').Value := '值'; 
FDataSet.Post; //提交,使添加生效 
end; 

//删除数据 
procedure TForm1.Button2Click(Sender: TObject); 
begin 
FDataSet.SQL.Text := 'SELECT * FROM [表名] WHERE 条件'; 
FDataSet.Open; //打开 
FDataSet.Delete; //删除当前数据 

//也可用 SQL 语句方法删除 
FDataSet.SQL.Text := 'DELETE FROM [表名] WHERE 条件'; 
FDataSet.ExecSQL; //执行 SQL 语句 
end; 

constructor TForm1.Create(AOwner: TComponent); 
begin 
inherited; 
FConnection := TADOConnection.Create(nil); 
FConnection.LoginPrompt := False; //不弹出口令对话框 
FConnection.ConnectionString := Format(CONN_JETOLE_P, ['MDB 文件名', '密码,如果没有,则留空']); 

FDataSet := TADOQuery.Create(nil); 
FDataSet.Connection := FConnection; 
end; 

destructor TForm1.Destroy; 
begin 
FreeAndNil(FConnection); 
FreeAndNil(FDataSet); 
inherited; 
end; 

initialization 
ActiveX.CoInitialize(nil); 

finalization 
ActiveX.CoUninitialize; 

end.



1、采用ADO方式连接,直接文件连接,放入控件即可; 
2、使用ADO后,可用相应的类完成SQL语句。 
Query: TADOQuery; 
Query:= TADOQuery.create(nil); 
Query.Connection := adoConnect; 
Query.SQL.Clear; 
Query.SQL.Add('select * from tab_judge'); 
try 
Query.Open; 
except 
showmessage('打开数据库错!'); 
Query.Free; 
Exit; 
end; //end of try 
Query.First;
____________________________________________------------------------_________________________________________________
方式二
对数据的读写操作时针对adotable的操作 
adoTable1.Append; //新增记录 
adotable1.Edit; //修改当前记录指针记录 
adotable1.Post; //提交新增或者修改的记录 
adotable1.Cancel; //取消对记录的修改 
adotable1.Delete; //删除记录 

新增的例子: 

adotable1.append; //append方式
adotable1.FieldValues['名字']:='张三'; 
adotable1.FieldValues['时间']:='2007-9-7'; //注意字段类型 
adotable1.FieldValues['地址']:='XX区XX路XX号'; 
adotable1.post; 
             方法小二:
                       adotable1.Insert;//这个要转换字符串比较麻烦
                       adotable1.FieldByName('用户名').AsString:=edit1.Text;
                       adotable1.FieldByName('密码').asstring:=edit2.Text;
                       adotable1.Post;
                       dbgrid1.Refresh;

修改的例子: 

adotable1.edit; 
adotable1.FieldValues['名字']:='张三'; 
adotable1.FieldValues['时间']:='2007-9-7'; //注意字段类型 
adotable1.FieldValues['地址']:='XX区XX路XX号'; 
adotable1.post; 

删除的例子 

adotable1.delete;//注意删除的是记录指针位置的数据 

获取数据: 
通过移动记录指针,移动到合适的位置然后直接读取 

procedure button1click (sender:object); 
var 
strAddress,strName:String; 
dtDate:TDateTime; 
begin 
adotable.next;//指针向下一条,就是当前记录的下一条记录 
strAddress:=adotable1.FieldValues['地址']; 
strName:=adotable1.FieldValues['名字']; 
dtDate:=adotable1.FieldValues['时间']; 
showmessage(strAddress + ' '+ strName + formatDateTime('YYYY-MM-DD',dtDate)) 
end; 

原创粉丝点击