主题:不提示错误,但控件又不起作用
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls,Unit3;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
DBGrid1: TDBGrid;
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button4Click(Sender: TObject);
var
stu:stuDao;
begin
stu:=stuDao.Create();
dbgrid1.DataSource:=stu.queryAll;
end;
end.
//****************************************
unit Unit2;
//数据连接层
interface
uses
SysUtils,Dialogs,Classes,DB,ADODB;
type
TConnDb=class //数据库连接类
private
conn:TADOConnection;
public
adoQuery:TADOQuery;
constructor Create(); //构造方法
function getAdoQuery():TAdoQuery; //取得已连数据库的ADOQuery对象
end;
//===============================================================================
type
TDbHande=class //SQL语句执行类
private
conn:TConnDb;
public
//adoQuery:TADOQuery;
constructor Create(); //构造方法
function queryDb(sql:String):TADOQuery; //执行查询语句的方法
procedure upDateDb(sql:String); //执行增,删,改的方法
end;
implementation
constructor TConnDb.Create();
var
str:WideString; //接收数据库连接字符串
begin
str:='Provider=Microsoft.Jet.OLEDB.4.0;';
str:=str+'User ID=Admin;';
str:=str+'Data Source=db1.mdb;';
str:=str+'Mode=Share Deny None;Extended Properties="";';
str:=str+'Jet OLEDB:System database="";';
str:=str+'Jet OLEDB:Registry Path="";';
str:=str+'Jet OLEDB:Database Password="";';
str:=str+'Jet OLEDB:Engine Type=5;';
str:=str+'Jet OLEDB:Database Locking Mode=1;';
str:=str+'Jet OLEDB:Global Partial Bulk Ops=2;';
str:=str+'Jet OLEDB:Global Bulk Transactions=1;';
str:=str+'Jet OLEDB:New Database Password="";';
str:=str+'Jet OLEDB:Create System Database=False;';
str:=str+'Jet OLEDB:Encrypt Database=False;';
str:=str+'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;';
str:=str+'Jet OLEDB:Compact Without Replica Repair=False;';
str:=str+'Jet OLEDB:SFP=False';
conn:=TADOConnection.Create(nil);
conn.ConnectionString:=str;
conn.LoginPrompt:=false;
end;
function TConnDb.getAdoQuery():TADOQuery; //返回已连接Connection组件的ADOQUERY
begin
adoQuery:=TADOQuery.Create(nil);
adoQuery.Connection:=conn; //conn已连接数据库
result:=adoQuery;
end;
//==============================================================================
constructor TDbHande.Create();
begin
conn:=TConnDb.Create();//构造函数初始化连接数据库
end;
function TDbHande.queryDb(sql:String):TADOQuery;
var
adoQuery:TADOQuery;
begin
adoQuery:=conn.getAdoQuery(); //接收已连数据库的ADOQUERY组件
adoQuery.Close;
adoQuery.SQL.Clear;
adoQuery.SQL.Add(sql);
adoQuery.Open;
result:=adoQuery; //返回经过操作的结果集
end;
procedure TDbHande.upDateDb(sql:String);
var
adoQuery:TADOQuery;
begin
adoQuery:=conn.getAdoQuery(); //接收已连数据库的ADOQUERY组件
adoQuery.Close;
adoQuery.SQL.Clear;
adoQuery.SQL.Add(sql);
adoQuery.ExecSQL;
end;
end.
//************************
unit Unit3;
// 数据操作
interface
uses
SysUtils,Dialogs,Classes,DB,ADODB,Unit2;
type
stuDao=class
private
dbHande:TDbHande; //定义连接数据库对象
public
constructor Create(); //构造方法
procedure query();
procedure delete();
//procedure insert();
//procedure update();
function queryAll():TDataSource;
end;
implementation
constructor stuDao.Create();
begin
dbHande:=TDbHande.Create;
end;
procedure stuDao.query();
var
sql:String;
begin
sql:='select * from stu';
dbHande.queryDb(sql);
end;
procedure stuDao.delete();
var
sql:string;
begin
sql:='delete from stu where name = aa ';
dbHande.upDateDb(sql);
end;
function stuDao.queryAll():TDataSource;
var
sql:string;
ds:TDataSource;
begin
ds:=TDataSource.Create(nil);
sql:='select * from stu';
ds.DataSet:=dbHande.queryDb(sql);
result:=ds;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls,Unit3;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
DBGrid1: TDBGrid;
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button4Click(Sender: TObject);
var
stu:stuDao;
begin
stu:=stuDao.Create();
dbgrid1.DataSource:=stu.queryAll;
end;
end.
//****************************************
unit Unit2;
//数据连接层
interface
uses
SysUtils,Dialogs,Classes,DB,ADODB;
type
TConnDb=class //数据库连接类
private
conn:TADOConnection;
public
adoQuery:TADOQuery;
constructor Create(); //构造方法
function getAdoQuery():TAdoQuery; //取得已连数据库的ADOQuery对象
end;
//===============================================================================
type
TDbHande=class //SQL语句执行类
private
conn:TConnDb;
public
//adoQuery:TADOQuery;
constructor Create(); //构造方法
function queryDb(sql:String):TADOQuery; //执行查询语句的方法
procedure upDateDb(sql:String); //执行增,删,改的方法
end;
implementation
constructor TConnDb.Create();
var
str:WideString; //接收数据库连接字符串
begin
str:='Provider=Microsoft.Jet.OLEDB.4.0;';
str:=str+'User ID=Admin;';
str:=str+'Data Source=db1.mdb;';
str:=str+'Mode=Share Deny None;Extended Properties="";';
str:=str+'Jet OLEDB:System database="";';
str:=str+'Jet OLEDB:Registry Path="";';
str:=str+'Jet OLEDB:Database Password="";';
str:=str+'Jet OLEDB:Engine Type=5;';
str:=str+'Jet OLEDB:Database Locking Mode=1;';
str:=str+'Jet OLEDB:Global Partial Bulk Ops=2;';
str:=str+'Jet OLEDB:Global Bulk Transactions=1;';
str:=str+'Jet OLEDB:New Database Password="";';
str:=str+'Jet OLEDB:Create System Database=False;';
str:=str+'Jet OLEDB:Encrypt Database=False;';
str:=str+'Jet OLEDB:Don'+''''+'t Copy Locale on Compact=False;';
str:=str+'Jet OLEDB:Compact Without Replica Repair=False;';
str:=str+'Jet OLEDB:SFP=False';
conn:=TADOConnection.Create(nil);
conn.ConnectionString:=str;
conn.LoginPrompt:=false;
end;
function TConnDb.getAdoQuery():TADOQuery; //返回已连接Connection组件的ADOQUERY
begin
adoQuery:=TADOQuery.Create(nil);
adoQuery.Connection:=conn; //conn已连接数据库
result:=adoQuery;
end;
//==============================================================================
constructor TDbHande.Create();
begin
conn:=TConnDb.Create();//构造函数初始化连接数据库
end;
function TDbHande.queryDb(sql:String):TADOQuery;
var
adoQuery:TADOQuery;
begin
adoQuery:=conn.getAdoQuery(); //接收已连数据库的ADOQUERY组件
adoQuery.Close;
adoQuery.SQL.Clear;
adoQuery.SQL.Add(sql);
adoQuery.Open;
result:=adoQuery; //返回经过操作的结果集
end;
procedure TDbHande.upDateDb(sql:String);
var
adoQuery:TADOQuery;
begin
adoQuery:=conn.getAdoQuery(); //接收已连数据库的ADOQUERY组件
adoQuery.Close;
adoQuery.SQL.Clear;
adoQuery.SQL.Add(sql);
adoQuery.ExecSQL;
end;
end.
//************************
unit Unit3;
// 数据操作
interface
uses
SysUtils,Dialogs,Classes,DB,ADODB,Unit2;
type
stuDao=class
private
dbHande:TDbHande; //定义连接数据库对象
public
constructor Create(); //构造方法
procedure query();
procedure delete();
//procedure insert();
//procedure update();
function queryAll():TDataSource;
end;
implementation
constructor stuDao.Create();
begin
dbHande:=TDbHande.Create;
end;
procedure stuDao.query();
var
sql:String;
begin
sql:='select * from stu';
dbHande.queryDb(sql);
end;
procedure stuDao.delete();
var
sql:string;
begin
sql:='delete from stu where name = aa ';
dbHande.upDateDb(sql);
end;
function stuDao.queryAll():TDataSource;
var
sql:string;
ds:TDataSource;
begin
ds:=TDataSource.Create(nil);
sql:='select * from stu';
ds.DataSet:=dbHande.queryDb(sql);
result:=ds;
end;
end.