目录:
1.控件在DBEdit中只能输入数字;
2.清空stringgrid中的值(除第一行标题外);
3.填充stringgrid的各个单元格(数据源是ADOQuery,表格第一行是标题,不填充)
4.把stringgrid中类型为'新增'的记录插入表
**************
内容
1.控件在DBEdit中只能输入数字
procedure TBookOrder.DBEdit6KeyPress(Sender: TObject; var Key: Char);
begin
if(key<=#39)and(key>=#30) then
dbedit6.Text:=dbedit6.Text+key;
end;
2.清空stringgrid中的值(除第一行标题外)
//本例子假设stringgrid1有7列12行
procedure TBookBorrow.cleargrid;
var
i,j:integer;
begin
for i:=1 to 11 do
for j:=0 to 6 do
stringgrid1.Cells[j,i]:='';
end;
3.填充stringgrid的各个单元格(数据源是ADOQuery,表格第一行是标题,不填充)
var
i : Integer;
begin
i := 1;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select * from 借阅情况');
ADOQuery2.Open;
i := 1; //i在这里既是统计记录数的变量,又是表表格的行号;
while not ADOQuery2.Eof do
begin
stringgrid1.Cells[0,i] := ADOQuery2.FieldByName('状态').AsString;
stringgrid1.Cells[1,i] := ADOQuery2.FieldByName('图书编号').AsString;
stringgrid1.Cells[2,i] := ADOQuery2.FieldByName('书名').AsString;
stringgrid1.Cells[3,i] := ADOQuery2.FieldByName('借书时间').AsString;
stringgrid1.Cells[4,i] := ADOQuery2.FieldByName('应还时间').AsString;
stringgrid1.Cells[5,i] := ADOQuery2.FieldByName('出版社').AsString;
stringgrid1.Cells[6,i] := ADOQuery2.FieldByName('价格').AsString;
i := i + 1;
ADOQuery2.Next;
end;
end;
4.把stringgrid中类型为'新增'的记录插入表
procedure TBookBorrow.ToolButton1Click(Sender: TObject);
var
maxnum : Integer;
i : Integer;
begin
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('select max(借阅编号)as 最大编号 from ͼÊé½èÔÄ');
ADOQuery2.Open;
maxnum := (ADOQuery2.FieldByName('最大编号').AsInteger)+1;
ADOCommand1.CommandText := 'SET IDENTITY_INSERT 图书借阅 ON';
ADOCommand1.Execute;
for i :=1 to 12 do
if stringgrid1.Cells[0,i]= '新增' then
begin
adocommand1.CommandText:='insert into 图书借阅([借阅编号], [图书编号], [读者编号], [借阅时间], [应还时间], [续借次数], [状态) values('''+inttostr(maxnum)+''','''+stringgrid1.Cells[1,i]+''','''+usernum+''','''+stringgrid1.Cells[3,i]+''','''+stringgrid1.cells[4,i]+''',''0'',''未还'')';
adocommand1.Execute;
maxnum := maxnum + 1;
end;
ADOCommand1.CommandText := 'SET IDENTITY_INSERT 图书借阅 OFF';
ADOCommand1.Execute;
end;