sql.Add('select * from 表名 where 条件 order by字段asc'); //进行查询、排序 其中“ order by 表示按“指定字段”进行排列顺序 参数:asc(升序) 或desc(降序) ”
begin
dbgrid1.Columns [0].Width :=512; //0表示第一列 ,
end;
begin
edit1.Text :=inttostr(table1.RecNo);//当前记录号显示在edit1.text中
end;
begin
if table1.Eof =true then //eof 改为bof,就是首记录
showmessage('已是最后一条记录')
else
table1.Next //首记录时,next改为Prior
end;
end.
//前提:合计列和指定列必须都是N型字段
begin
with query1 do
begin
sql.Clear ; //清理sql
sql.Add('select sum(要合计字段) 合计后字段名称 from 表 where 字段 between 2 and 4'); //“合计后字段名称”改成需要的名称,where后的“字段”为非合计字段之一,“between”是函数,表示在什么之间,“between 2 and 4”表示合计结果为指定字段在2~4之间的所有数。(如把“where 字段 between 2 and 4”改为:where 字段=x,则只合计结果为指定字段等于x的数)where后面的字段为N型。
open; //打开数据库
end;
end;
· AVG (平均)
· COUNT (计数)
· MAX (最大值)
· MIN (最小值)
· SUM (总合)
运用函数的语法是:
SELECT "函数名"("栏位名")
FROM "表格名"
总数:select count as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最小:select min(field1) as minvalue from table1
双击DBGrid1,然后选中要进行下拉的字段名称,设置其PickList属性。
下拉内容取指定数据库内容代码如下:
Begin //注:上面代码中不能有"end;"
with query1 do
begin
sql.Clear ; //清理sql
sql.Add('select distinct 字段名 from 表名'); //进行不重复查询
open; //打开数据库
begin
Query1.open;
Query1.First;//指向第一条
dbgrid1.columns[0].picklist.Clear;// dbgrid1.columns[0]是指在dbgrid1的第一个字段。
while not Query1.eof do//向下查询
begin
dbgrid1.columns[0].picklist.Add(Query1.fieldByname('字段名').asstring);//向下拉菜单中添加数据库中的内容,'字段名' 是选择项数据库的字段名
Query1.Next;
end;
end;
end;
end;
begin
DBGrid1.Columns[0].Alignment := taCenter;//第一个显示字段记录
end;
begin
DBGrid1.Columns[0].Title.Alignment := TaCenter ;//第一个显示字段名
end;
在DBGrid1的KeyPress事件中写如下代码:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if(DBGrid1.SelectedIndex=DBGrid1.FieldCount-1) Then
Begin
DBGrid1.SelectedIndex:=0;
Table1.Next;
End
Else
DBGrid1.SelectedIndex:=DBGrid1.SelectedIndex+1;
end;
end;
在DBGrid1的On DrawColumnCell事件中写如下代码:
var i:integer;
begin
i:=Table1.RecNo;
if (i mod 2) =1 then
DBGrid1.Canvas.Brush.Color:=clblue //蓝
else
DBGrid1.Canvas.Brush.Color:=clred; //红
dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state);
end;
//abc三个字段都是n型(+-*,不能做/)
begin
with Table1 do
begin
first;
while not eof do
begin
edit;
fieldbyname('c').Asinteger := fieldbyname('a').Asinteger +fieldbyname('b').Asinteger ;
post;
next;
end ;
end;
end;
end.
从Additional面板选择ApplicationEvents1控件
再他的on
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin
if (DBGrid1.Focused) And (Msg.message = WM_MOUSEWHEEL) then
begin
if Msg.wParam > 0 then
SendMessage(DBGrid1.Handle, WM_KEYDOWN, VK_UP, 0)
else
SendMessage(DBGrid1.Handle, WM_KEYDOWN, VK_DOWN, 0);
Handled := True;
end;
end;
query1.append;