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 := ;//初始化下标
ADOQuery.First;
While Not ADOQuery.Eof Do //数据集循环
begin
A[Index] := ADOQuery.FieldByName('B').asString;//数据添加到数组中 Inc(Index);
ADOQuery.Next;
end;
end;
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可以取如下的值:
、arCurrent :删除当前记录
、arFiltered :删除符合Filter过滤后的所有记录(如果你使用Filter过滤的话)
、arAll :删除所有记录
、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时注意: 、如果你需要更改数据,query.requestlive必须为true
、如果有输入参数的时候,容易出错,通常的错法是这样:
比如:“WHERE abc = : abc”
改正如下:“WHERE abc=:abc”就是说=:前后都不能留空格。
、ADOQuery.Open与ADOQuery.ExecSQL 有不同之处。
ADOQuery.Open一般用在查询,select时候;而ADOQuery.ExecSQL用在insert,delete,update等。
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('不能连接到数据库!','提示信息',);
application.Terminate;
end;
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:= to ts.Count- do
showmessage('第'+inttostr(i+)+'个字段名是'+ts.Strings);
end;
//注:用session控件也可以完成以上的功能
Delphi ADOQuery的更多相关文章
- delphi adoquery的post和UpdateBatch
delphi adoquery的post和UpdateBatch Post是确认当前的修改,而UpdateBatch是把已经确认但是没有存盘的数据写入数据库当ADOQuery的CursorType是c ...
- Delphi ADOQuery连接数据库的查询、插入、删除、修改
http://blog.csdn.net/chinazhd/article/details/45047777 //查询记录 procedure TForm1.Button1Click(Sender: ...
- Delphi ADOQuery多个参数重复 改编技巧
今天看了多年前的一个帖子,发现回答不合理,有些还将其归为delphi的bug.其实主要是没有灵活应用参数. ADOQUERY查询时,这样不行,结果不正确. WITH ADOQUERY1 DO BEGI ...
- delphi ADOQUery中错误解决方法"无法为更新定位行。一些值可能已在最后...
使用delphi中的ADOQuery控件中自带的,insert ,edit,delete此操作时,有时会出现下面的错误提示,提示错误信息:"无法为更新定位行.一些值可能已在最后一次读取后已更 ...
- Delphi ADOQuery的速度优化 转
今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性. 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSourceA和DOQu ...
- Delphi ADOQuery的速度优化
今天终于把纠缠了几天的问题改完了,说到底只是一个很小的问题,就是ADOQuery的一个小属性. 把控件DBGridEh的一列的checkbox设为true,将其绑定DataSource和ADOQuer ...
- Delphi ADOQuery的 DisableControls 和 EnableControls方法
DisableControls方法是在程序修改或后台有刷新记录的时候切断数据组件,如TTABLE.ADOQUERY等等与组件数据源的联系.如果没有切断,数据源中只要一有数据的改动,尤其是批量改动的话, ...
- Delphi ADOQuery的属性 locktype、CursorLocation 、Filter、CursorType、CancelBatch 和 UpdateBatch
以下数据,部分来自网络的收集,部分为自己测试后的原创整理,希望对你有帮助,更新会注明日期. 1.locktype 指定用户打开数据集时对数据集的锁定级别: ltUnspecified 未指定锁定 ...
- delphi ADOQuery 开启本地缓存
在开发 C/S 应该程序的时候,有时为了程序的运行提高效率. 需要使用 缓存功能: //ADO组件需要把 ADOQuery1.LockType:=ltBatchOptimistic; ADOQuery ...
随机推荐
- 当我们在Java中新建一个对象的时候发生了什么?
- leetcode-161周赛-5249-移除无效的括号
题目描述: 自己的提交:O(N) class Solution: def minRemoveToMakeValid(self, s: str) -> str: #from collections ...
- react-router v3和v4区别
1.默认路由 v3 <IndexRoute> v4 <Route exact> 2.授权路由 import Redirect from 'react-router-dom' & ...
- Java Http POST/GET 情求
POST: //返回体 public static final String RESPONCE_BODY = "responceBody"; //URL public static ...
- python3 投票
import urllib.request # cd C:\Python36-32\Scripts # pip install BeautifulSoup from bs4 import Beauti ...
- 2018.12.26 考试(哈希,二分,状压dp)
T1 传送门 解题思路 发现有一个限制是每个字母都必须相等,那么就可以转化成首尾的差值相等,然后就可以求出\(k-1\)位的差值\(hash\)一下.\(k\)为字符集大小,时间复杂度为\(O(nk) ...
- 【Java架构:基础技术】一篇文章搞掂:Eclipse
Eclipse中使用SVN 1.打开资源库视图 https://www.cnblogs.com/liangguangqiong/p/7965770.html 一.编辑器方面 格式化取消自动换行:打开E ...
- 提升R代码运算效率的11个实用方法
提升R代码运算效率的11个实用方法 众所周知,当我们利用R语言处理大型数据集时,for 循环语句的运算效率非常低.有许多种方法可以提升你的代码运算效率,但或许你更想了解运算效率能得到多大的提升.本文将 ...
- 使用U盘或在本地电脑作为git远程仓库进行托管
情景描述: 当有两台电脑需要共同维护一段代码,其中一台电脑不希望(或者不能)通过网络的方式进行访问git仓库(即不使用github),那么可以使用U盘作为介质将其作为远程仓库,或者使用局域网中一台电脑 ...
- HDU 6695 Welcome Party (贪心)
2019 杭电多校 10 1005 题目链接:HDU 6695 比赛链接:2019 Multi-University Training Contest 10 Problem Description T ...