麻烦帮忙写个在DEPHI中用程序访问ACCESS的完整例子,50分 请具体点,我很菜,包括从打开ACCESS数据库的语句开始,非常感谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 才用Ado控件.TADOConnection,TADOQuery,TDataSource,TDBgrid;用ADOConnection1连接数据库,选择后面一句的数据库别名,通过odbc(在98的控制面版2k的管理工具中的 数据源ODBC )中添加数据库别名还有数据库的位置)ADOQuery1的属性connection连接ADOConnection1.在属性SQL添加一句 select * from ACCESS库表名.,设置Active为true;DataSource1的detaset连接ADOQuery1DBgrid1的datasource连接DataSource1然后就正常使用了. TADOCommand = class(TComponent) private FCommandObject: _Command; FConnection: TADOConnection; FConnectionString: WideString; FCommandText: WideString; FCommandTextAlias: string; FComponentRef: TComponent; FExecuteOptions: TExecuteOptions; FParameters: TParameters; FConnectionFlags: set of 1..8; FParamCheck: Boolean; function GetCommandTimeOut: Integer; function GetCommandType: TCommandType; function GetPrepared: WordBool; function GetProperties: Properties; function GetState: TObjectStates; procedure SetCommandTimeOut(const Value: Integer); procedure SetComandType(const Value: TCommandType); procedure SetConnection(const Value: TADOConnection); procedure SetConnectionString(const Value: WideString); procedure SetParameters(const Value: TParameters); procedure SetPrepared(const Value: WordBool); function GetActiveConnection: _Connection; protected procedure AssignCommandText(const Value: WideString; Loading: Boolean = False); procedure CheckCommandText; procedure ClearActiveConnection; function ComponentLoading: Boolean; procedure ConnectionStateChange(Sender: TObject; Connecting: Boolean); procedure Initialize(DoAppend: Boolean = True); virtual; procedure OpenConnection; virtual; procedure SetCommandText(const Value: WideString); virtual; function SetConnectionFlag(Flag: Integer; Value: Boolean): Boolean; virtual; property ActiveConnection: _Connection read GetActiveConnection; property CommandTextAlias: string read FCommandTextAlias write FCommandTextAlias; property ComponentRef: TComponent read FComponentRef write FComponentRef; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Assign(Source: TPersistent); override; procedure Cancel; function Execute: _Recordset; overload; function Execute(const Parameters: OleVariant): _Recordset; overload; function Execute(var RecordsAffected: Integer; const Parameters: OleVariant): _Recordset; overload; property CommandObject: _Command read FCommandObject; property Properties: Properties read GetProperties; property States: TObjectStates read GetState; published property CommandText: WideString read FCommandText write SetCommandText; property CommandTimeout: Integer read GetCommandTimeOut write SetCommandTimeOut default 30; property CommandType: TCommandType read GetCommandType write SetComandType default cmdText; property Connection: TADOConnection read FConnection write SetConnection; property ConnectionString: WideString read FConnectionString write SetConnectionString; property ExecuteOptions: TExecuteOptions read FExecuteOptions write FExecuteOptions default []; property Prepared: WordBool read GetPrepared write SetPrepared default False; property Parameters: TParameters read FParameters write SetParameters; property ParamCheck: Boolean read FParamCheck write FParamCheck default True; end; 再具体的可以察看Delphi安装目录下的Access97.pas/Access2000.pas文件考虑那么多干吗? 请把我当成傻子一样的写出完整(详细)的过程,如果可以的话想看看OLE是如何连的 procedure Tfrmmain.FormCreate(Sender: TObject);begin //连接数据库 connstring := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='; connstring := connstring + ExtractFilePath(paramstr(0)) + '\Salary.mdb;Persist Security Info=False'; IF ADOCONN.Connected THEN ADOCONN.Connected := FALSE; ADOCONN.ConnectionString := CONNSTRING; ADOCONN.LoginPrompt := FALSE; ADOCONN.Connected := TRUE; ADOQuery1.Connection := adoconn; yearvalue.Text := formatdatetime('yyyy', now); monthvalue.Text := formatdatetime('mm', now); if ADOQuery1.Active then adoquery1.Active := false; adoquery1.SQL.Clear; tmpstr := yearvalue.Text + '-' + monthvalue.Text; sqlstring := 'select * from sum_temp where ym="' + tmpstr + '"'; adoquery1.SQL.Add(sqlstring); adoquery1.Active := true; 忘了!!var constring,tmpstr:string; with adoconnection1 dobegin if connected=false then begin connectionstring:='provider=microsoft.jet.oledb.4.0;data source=c:\db1.mdb'; try open; except application.messagebox('无法连接','出错',mb_iconinformation); end; end;end; 用一台电脑控制其它电脑 有关 TidSNMP控件的使用问题 文件夹是手动创建还是怎么创建的? 关于插入记录的问题 function 函数的返回值类型不能是数组吗?望高手赐教 如何用编程为listbox1添加一项或多项内容? Sessions问题。 数据库同步刷新问题 我的同事用pb做出来了,我用delphi没有实现,难道是delphi不如pb吗,请delphi大侠帮忙! 關于Check控件的Click事件? 如何更新BDE! 紧急求助,sql语句中的时间问题
Ado控件.
TADOConnection,TADOQuery,TDataSource,TDBgrid;
用ADOConnection1连接数据库,选择后面一句的数据库别名,通过odbc(在98的控制面版2k的管理工具中的 数据源ODBC )中添加数据库别名还有数据库的位置)
ADOQuery1的属性connection连接ADOConnection1.在属性SQL添加一句 select * from ACCESS库表名.,设置Active为true;
DataSource1的detaset连接ADOQuery1
DBgrid1的datasource连接DataSource1
然后就正常使用了.
private
FCommandObject: _Command;
FConnection: TADOConnection;
FConnectionString: WideString;
FCommandText: WideString;
FCommandTextAlias: string;
FComponentRef: TComponent;
FExecuteOptions: TExecuteOptions;
FParameters: TParameters;
FConnectionFlags: set of 1..8;
FParamCheck: Boolean;
function GetCommandTimeOut: Integer;
function GetCommandType: TCommandType;
function GetPrepared: WordBool;
function GetProperties: Properties;
function GetState: TObjectStates;
procedure SetCommandTimeOut(const Value: Integer);
procedure SetComandType(const Value: TCommandType);
procedure SetConnection(const Value: TADOConnection);
procedure SetConnectionString(const Value: WideString);
procedure SetParameters(const Value: TParameters);
procedure SetPrepared(const Value: WordBool);
function GetActiveConnection: _Connection;
protected
procedure AssignCommandText(const Value: WideString; Loading: Boolean = False);
procedure CheckCommandText;
procedure ClearActiveConnection;
function ComponentLoading: Boolean;
procedure ConnectionStateChange(Sender: TObject; Connecting: Boolean);
procedure Initialize(DoAppend: Boolean = True); virtual;
procedure OpenConnection; virtual;
procedure SetCommandText(const Value: WideString); virtual;
function SetConnectionFlag(Flag: Integer; Value: Boolean): Boolean; virtual;
property ActiveConnection: _Connection read GetActiveConnection;
property CommandTextAlias: string read FCommandTextAlias write FCommandTextAlias;
property ComponentRef: TComponent read FComponentRef write FComponentRef;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
procedure Cancel;
function Execute: _Recordset; overload;
function Execute(const Parameters: OleVariant): _Recordset; overload;
function Execute(var RecordsAffected: Integer; const Parameters: OleVariant): _Recordset; overload;
property CommandObject: _Command read FCommandObject;
property Properties: Properties read GetProperties;
property States: TObjectStates read GetState;
published
property CommandText: WideString read FCommandText write SetCommandText;
property CommandTimeout: Integer read GetCommandTimeOut write SetCommandTimeOut default 30;
property CommandType: TCommandType read GetCommandType write SetComandType default cmdText;
property Connection: TADOConnection read FConnection write SetConnection;
property ConnectionString: WideString read FConnectionString write SetConnectionString;
property ExecuteOptions: TExecuteOptions read FExecuteOptions write FExecuteOptions default [];
property Prepared: WordBool read GetPrepared write SetPrepared default False;
property Parameters: TParameters read FParameters write SetParameters;
property ParamCheck: Boolean read FParamCheck write FParamCheck default True;
end;
begin
//连接数据库
connstring := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
connstring := connstring + ExtractFilePath(paramstr(0)) + '\Salary.mdb;Persist Security Info=False';
IF ADOCONN.Connected THEN ADOCONN.Connected := FALSE;
ADOCONN.ConnectionString := CONNSTRING;
ADOCONN.LoginPrompt := FALSE;
ADOCONN.Connected := TRUE;
ADOQuery1.Connection := adoconn;
yearvalue.Text := formatdatetime('yyyy', now);
monthvalue.Text := formatdatetime('mm', now);
if ADOQuery1.Active then adoquery1.Active := false;
adoquery1.SQL.Clear;
tmpstr := yearvalue.Text + '-' + monthvalue.Text;
sqlstring := 'select * from sum_temp where ym="' + tmpstr + '"';
adoquery1.SQL.Add(sqlstring);
adoquery1.Active := true;
var
constring,tmpstr:string;
begin
if connected=false then
begin
connectionstring:='provider=microsoft.jet.oledb.4.0;data source=c:\db1.mdb';
try
open;
except
application.messagebox('无法连接','出错',mb_iconinformation);
end;
end;
end;