GVKun编程网logo

Delphi 数据库查询(TADOQuery)(delphi 数据库查询 教程)

57

对于想了解Delphi数据库查询的读者,本文将是一篇不可错过的文章,我们将详细介绍TADOQuery,并且为您提供关于Delphi/ADO:哪些组件?TADODataSet和TADOCommand还是

对于想了解Delphi 数据库查询的读者,本文将是一篇不可错过的文章,我们将详细介绍TADOQuery,并且为您提供关于Delphi / ADO:哪些组件? TADODataSet和TADOCommand还是TADOQuery?、Delphi ADOQuery、delphi ADOQuery '尚未调用 CoInitialize、delphi adoquery 判断字段是否存在的有价值信息。

本文目录一览:

Delphi 数据库查询(TADOQuery)(delphi 数据库查询 教程)

Delphi 数据库查询(TADOQuery)(delphi 数据库查询 教程)

总结

以上是小编为你收集整理的Delphi 数据库查询(TADOQuery)全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Delphi / ADO:哪些组件? TADODataSet和TADOCommand还是TADOQuery?

Delphi / ADO:哪些组件? TADODataSet和TADOCommand还是TADOQuery?

根据 http://www.delphigroups.info/2/3/181838.html

The preferred approach with ADO
components is to use TADODataSet and
TADOCommand. TADOQuery (and TADOTable
and TADOStoredProc) are provided for
compatibility.

Use TADODataSet for sql that returns
result-sets and TADOCommand for sql
that does not.

我是一个无知的n00b – 谁将编写很多ADO的东西.以上陈述是否正确?

P.s是否有任何良好的开源Windows程序,让我可视化和探索我的数据库的内容?

我应该使用哪些组件来处理/不返回结果?

解决方法

那句话是对的. TADODataset和TADOCommand是直接接口,原生ADO对象,并可以执行由其他三个,那些为方便移植应用程序的BDE(Borland数据库引擎)书面提出的所有任务,implmenting类似的界面 – 他们最终调用前两个.

Delphi ADOQuery

Delphi ADOQuery

Delphi ADOQuery

分享图片

分享图片

procedure TForm1.Button1Click(Sender: TObject); 
var 
A: Array of String;//定义动态数组 
Index: Integer;//定义数组下标变量
ADOQuery:TADOQuery; 
begin 
ADOQuery:=TADOQuery.create;
ADOQuery.sql.Clear; 
ADOQuery.sql.Add(Select B from A); 
ADOQuery.Open; 
Setlength(A,ADOQuery.RecordCount); //设置数组宽度 
Index := 0;//初始化下标 
ADOQuery.First; 
While Not ADOQuery.Eof Do //数据集循环 
begin 
A[Index] := ADOQuery.FieldByName(B).asstring;//数据添加到数组中 Inc(Index); 
ADOQuery.Next; 
end; 
end;
View Code

Delphi ADOQuery连接数据库的查询、插入、删除、修改

分享图片

分享图片

//查询记录
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery.Close;
ADOQuery.sql.Clear;
ADOQuery.sql.Add(select * from YourTABLE where 查询条件);
ADOQuery.Open;

//插入记录
procedure TForm1.Button2Click(Sender: TObject);
begin
ADOQuery.Close;
ADOQuery.sql.Clear;
ADOQuery.sql.Text:=insert into YourTABLE(字段1,字段2) values(:字段1,:字段2);
// ADOQuery.sql.Add(‘insert into YourTABLE values(:字段1)‘);
ADOQuery.Parameters.ParamByName(字段1).Value:=trim(Edit1.Text);
ADOQuery.Parameters.ParamByName(字段2).Value:=trim(Edit2.Text);
ADOQuery.Execsql;
end;
//删除记录
procedure TForm1.Button3Click(Sender: TObject);
begin
ADOQuery.Close;
ADOQuery.sql.Clear;
ADOQuery.sql.Text:=Delete from YourTABLE where 字段3=:字段3;
//这里没有添加where的条件判断,实际使用时,注意添加判断
// ADOQuery.sql.Add(‘Delete from NEW_TABLE where 字段3=:字段3‘);
ADOQuery.Parameters.ParamByName(字段3).Value:=trim(Edit3.Text);
ADOQuery.Execsql;
//删除记录也可用DeleteRecords()函数
procedure DeleteRecords(AffectRecords: TAffectRecords = arall);   
这个函数有一个参数:AffectRecords可以取如下的值:   
1、arCurrent :删除当前记录   
2、arFiltered :删除符合Filter过滤后的所有记录(如果你使用Filter过滤的话)   
3、arall          :删除所有记录   
4、arallChapters :Delete affects all chapters(ADO chapters)
//修改记录
procedure TForm1.Button4Click(Sender: TObject);
begin
ADOQuery.Close;
ADOQuery.sql.Clear;
ADOQuery.sql.Text:=Update YourTABLE SET 字段4=:字段4;
//这里没有添加where的条件判断,实际使用时,注意添加判断
// ADOQuery.sql.Add(‘Update YourTABLE SET 字段4=:字段4‘);
ADOQuery.Parameters.ParamByName(字段4).Value:=trim(Edit4.Text);
ADOQuery.Execsql;
//即时更新插入、删除、修改后的记录
在上面插入、删除、修改的语句后添加如下代码即可:
ADOQuery.Close;
ADOQuery.sql.Add(select * from YourTABLE where 查询条件);
ADOQuery.Open;
//使用ADOQuery时注意:

1、如果你需要更改数据,query.requestlive必须为true
2、如果有输入参数的时候,容易出错,通常的错法是这样:
比如:“WHERE abc = : abc”
改正如下:“WHERE abc=:abc”就是说=:前后都不能留空格。
3、ADOQuery.Open与ADOQuery.Execsql 有不同之处。
ADOQuery.Open一般用在查询,select时候;而ADOQuery.Execsql用在insert,delete,update等。
View Code

Delphi中使用ADO连接带密码的Access

分享图片

分享图片

Delphi中使用ADO连接带密码的Access

 

var gDBConn:string;


try
self.ADOConnection1.Close;
//无密码连接方式 Password="";
//gDBConn:=‘Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=MyDB.mdb;Persist Security Info=True‘;
//有密码连接方式 Jet OLEDB:Database Password=delphi7;
gDBConn:=Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=123456;Data Source=+ExtractFilePath(application.ExeName)+MyDB.mdb;Persist Security Info=True;
self.ADOConnection1.ConnectionString := gDBConn;
self.ADOConnection1.Open;
except
//raise;
self.ADOConnection1.Close;
self.ADOConnection1.Free;
application.MessageBox(不能连接到数据库!,提示信息,64);
application.Terminate;
end; 
View Code

delphi获取库中所有表名,表字段名

分享图片

分享图片

var   
      ts:Tstrings;   
      i:integer;   
  begin   
      ts:=Tstringlist.Create;   
      //adoconnection1.GetTableNames(ts,false);   
      //for   i:=0   to   ts.Count-1   do   
      //   showmessage(‘第‘+inttostr(i+1)+‘个表名是‘+ts.Strings);   
      adoconnection1.GetFieldNames(stu,ts);   
      for   i:=0   to   ts.Count-1   do   
              showmessage(+inttostr(i+1)+个字段名是+ts.Strings);   
  end;   
    //注:用session控件也可以完成以上的功能
View Code

delphi ADOQuery '尚未调用 CoInitialize

delphi ADOQuery '尚未调用 CoInitialize

总结

以上是小编为你收集整理的delphi ADOQuery ''尚未调用 CoInitialize全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

delphi adoquery 判断字段是否存在

delphi adoquery 判断字段是否存在

使用ADOQuery数据集操作数据库,一般情况下使用adoquery.fieldbyname(''columnName'').asString来访问数据,如果columnName不存在,系统会报错columnName not found,如何提前判断columnName是否存在呢?

  1. 使用FieldList.IndexOf来判断,例如:Adoquery.FieldList.IndexOf(''columnName'') >= 0表示该字段存在,<0表示不存在

  2. 使用FindField来判断,例如:Adoquery.Fields.FindField(''columnName'')=nil表示该字段不存在

关于Delphi 数据库查询TADOQuery的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Delphi / ADO:哪些组件? TADODataSet和TADOCommand还是TADOQuery?、Delphi ADOQuery、delphi ADOQuery '尚未调用 CoInitialize、delphi adoquery 判断字段是否存在等相关知识的信息别忘了在本站进行查找喔。

本文标签:

上一篇我的学习生涯(Delphi篇) - 00(我的学生生涯)

下一篇准备开源两个delphi组件,想听听大家的意见(delphi开源软件)