请问如何用ado动态连接数据库2 ado是直接连接数据库的存在的路径的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那也就是直接使用原生的ado对象了:procedure TForm1.btnConnectionClick(Sender: TObject);begin adoc := CreateOleObject('ADODB.Connection'); // 打开连接 adoc.Open ('Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=F:\Leewei\Books\Delphi5\Book3\Datas\Northwind.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False');end;procedure TForm1.btnOpenTableClick(Sender: TObject);begin ador := CreateOleObject('ADODB.RecordSet'); ador.ActiveConnection := adoc; // 设定指令类型和内容 ador.Open('Select * from 客户', adoc, adOpenStatic, adLockOptimistic, adCmdText); // 执行指令 fillData;end; 要使用原生的ado对象,你必须对connection对象的参数设定有很清楚的认识,否则无法正确书书写连接字符串 好像ador要先声明,请问如何声明? 自己写的一个ADO执行类,供参考{**************************************************************}{目的 用于执行对Access数据库(HR.mdb)的操作 }{创建时间:2001.11.5 }{**************************************************************}unit AdoLib;interfaceuses Classes, ADODB, Forms, Sysutils;type TAdoExecute=class private SysCn: TADOConnection; //私有成员:数据库连接对象 procedure OpenCn(); public destructor Destroy();override; procedure ExecuteSQL(const SqlStr:ansistring;var ResultSet:TADODataSet);overload; procedure ExecuteSQL(const SqlStr:ansistring;var AffectedRows:integer);overload; end;implementation//目的 打开数据库连接procedure TAdoExecute.OpenCn();var CnString: ansistring; //连接字符串 ST: TObjectStates; //连接状态begin try //如果对象实例不存在,则实例化 if SysCn=nil then begin CnString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=HR.mdb'; SysCn:=TADOConnection.Create(Application); SysCn.ConnectionString:=CnString; SysCn.LoginPrompt:=False; SysCn.ConnectionTimeout:=90; SysCn.KeepConnection:=True; end; ST:=[stOpen]; //如果连接对象关闭,则打开连接 if SysCn.State<>ST then begin SysCn.Connected:=True; end; except raise Exception.Create('数据库连接失败!'); end;end;//目的 重载析构destructor TAdoExecute.Destroy();begin FreeAndNil(SysCn);end;//目的 执行SQL语句,返回结果记录集procedure TAdoExecute.ExecuteSQL(const SqlStr:ansistring;var ResultSet:TADODataSet);begin try ResultSet:=TADODataSet.Create(Application); Self.OpenCn(); ResultSet.Connection:=SysCn; ResultSet.CommandType:=cmdText; ResultSet.CommandText:=SqlStr; ResultSet.Active:=true; except raise Exception.Create('数据库操作失败!'); end;end;//目的 执行SQL语句,返回操作影响行数procedure TAdoExecute.ExecuteSQL(const SqlStr:ansistring;var AffectedRows:integer);var Command:TADOCommand;begin try Command:=TADOCommand.Create(Application); Self.OpenCn(); Command.Connection:=SysCn; Command.CommandType:=cmdText; Command.CommandText:=SqlStr; Command.Execute(AffectedRows,''); SysCn.Close(); except raise Exception.Create('数据库操作失败!'); end;end;end. delphi 操作系统号验证问题 求一条SQL语句! 有关sql server2000中数据的重复问题? 想交些用delphi的朋友 关于Delphi提交数据库异常情况! 刚装了台机器,感觉配置不太对劲,我又不动硬件。请问网上有没有检测电脑硬件配置参数的工具啊,并给出网址。谢谢! 怎样跟据dbgrid中字段里的值,动态的改变字段值的颜色? 字符比较的问题(200分) 初学Delphi,麻烦推荐一个显示动态Gif的控件 求助!!!困惑??? adotquery中如何实现添加? 我打算用delphi开发ado的数据库,不知道各位觉的如何?
begin
adoc := CreateOleObject('ADODB.Connection');
// 打开连接
adoc.Open ('Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=F:\Leewei\Books\Delphi5\Book3\Datas\Northwind.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False');
end;
procedure TForm1.btnOpenTableClick(Sender: TObject);
begin
ador := CreateOleObject('ADODB.RecordSet');
ador.ActiveConnection := adoc;
// 设定指令类型和内容
ador.Open('Select * from 客户', adoc, adOpenStatic, adLockOptimistic, adCmdText); // 执行指令
fillData;
end;
{**************************************************************}
{目的 用于执行对Access数据库(HR.mdb)的操作 }
{创建时间:2001.11.5 }
{**************************************************************}unit AdoLib;interface
uses
Classes, ADODB, Forms, Sysutils;
type
TAdoExecute=class
private
SysCn: TADOConnection; //私有成员:数据库连接对象
procedure OpenCn();
public
destructor Destroy();override;
procedure ExecuteSQL(const SqlStr:ansistring;var ResultSet:TADODataSet);overload;
procedure ExecuteSQL(const SqlStr:ansistring;var AffectedRows:integer);overload;
end;implementation//目的 打开数据库连接
procedure TAdoExecute.OpenCn();
var
CnString: ansistring; //连接字符串
ST: TObjectStates; //连接状态
begin
try
//如果对象实例不存在,则实例化
if SysCn=nil then
begin
CnString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=HR.mdb';
SysCn:=TADOConnection.Create(Application);
SysCn.ConnectionString:=CnString;
SysCn.LoginPrompt:=False;
SysCn.ConnectionTimeout:=90;
SysCn.KeepConnection:=True;
end;
ST:=[stOpen];
//如果连接对象关闭,则打开连接
if SysCn.State<>ST then
begin
SysCn.Connected:=True;
end;
except
raise Exception.Create('数据库连接失败!');
end;
end;//目的 重载析构
destructor TAdoExecute.Destroy();
begin
FreeAndNil(SysCn);
end;//目的 执行SQL语句,返回结果记录集
procedure TAdoExecute.ExecuteSQL(const SqlStr:ansistring;var ResultSet:TADODataSet);
begin
try
ResultSet:=TADODataSet.Create(Application);
Self.OpenCn();
ResultSet.Connection:=SysCn;
ResultSet.CommandType:=cmdText;
ResultSet.CommandText:=SqlStr;
ResultSet.Active:=true;
except
raise Exception.Create('数据库操作失败!');
end;
end;//目的 执行SQL语句,返回操作影响行数
procedure TAdoExecute.ExecuteSQL(const SqlStr:ansistring;var AffectedRows:integer);
var
Command:TADOCommand;
begin
try
Command:=TADOCommand.Create(Application);
Self.OpenCn();
Command.Connection:=SysCn;
Command.CommandType:=cmdText;
Command.CommandText:=SqlStr;
Command.Execute(AffectedRows,'');
SysCn.Close();
except
raise Exception.Create('数据库操作失败!');
end;
end;end.