delphi第一次循环执行数据

unit K_ADOMoreUpdate;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, StdCtrls;

type
  TADOMoreUpdate = class(TForm)
    ADOConnection1: TADOConnection;
    ADOConnection2: TADOConnection;
    conExcel: TADOConnection;
    qry1: TADOQuery;
    qry2: TADOQuery;
    Label1: TLabel;
    Button1: TButton;
    dlgOpen1: TOpenDialog;
    BTN_N_1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    procedure BTN_N_1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
    function OpenExcel(FileName: string): Boolean;
  public
    { Public declarations }
  end;

var
  ADOMoreUpdate: TADOMoreUpdate;

implementation

{$R *.dfm}
function  TADOMoreUpdate.OpenExcel(FileName:string):Boolean;
var SQLStr:string;
    i:Integer;
begin
 try
   Result:=False;
   if conExcel.Connected then conExcel.Connected:=False;
   conExcel.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;'+'Data Source='+FileName+';Mode=Read;Extended Properties=Excel 8.0;Persist Security Info=False';
   conExcel.Connected:=true;
   SQLStr:='select 料号,采购员代码 from [sheet1$]';

   with qry1 do
   begin
    if Active then Close;
    SQL.Text:=SQLStr;
    Open;
   end;
   Result:=True;
   except
    on e:Exception do
      begin
        MessageDlg('ddd'+e.Message,mtError,[mbAbort],0);
      end;
   end;
end;

procedure TADOMoreUpdate.BTN_N_1Click(Sender: TObject);
begin
if dlgOpen1.Execute then
begin
  if OpenExcel(dlgOpen1.FileName) then
  begin
    showmessage('OK');
  end;
end;
end;

procedure TADOMoreUpdate.FormCreate(Sender: TObject);
begin
try
  ADOConnection2.Connected:=true;
  except
    showmessage('有问题');
end;
end;

procedure TADOMoreUpdate.Button1Click(Sender: TObject);
var Item,EmpNo:string;
   UpdateSQL:string;
   aCount,aRecNO:integer;
   aDate:Tdatetime;
begin
  aDate:=now();
  with qry1 do
  begin
    First;
    aCount:=RecordCount;
    aRecNo:=0;
    while not eof do
    begin
      aRecNo:=aRecNo+1;
      item:=trim(Fields[0].AsString);
      EmpNo:=trim(Fields[1].AsString);
      UpdateSQL:='Update t_t1 set t$byur='''+EmpNo+''''+' where t$item='''+ item+'''';
      try
        Label1.Caption:='Update '+inttostr(aRecNo)+'/'+inttostr(aCount)+' item:'+Item+' EMP:'+EmpNo;
        Label1.Update;
        self.Update;
        ADOConnection2.BeginTrans;
        qry2.SQL.Text:=UpdateSQL;
        qry2.ExecSQL;
        ADOConnection2.CommitTrans;
        application.ProcessMessages;
        except
          on e:exception do
            Memo1.Lines.Add(item+'    '+EMPNo+' '+e.Message);
      end;
      sleep(50);
      Next;
    end;
  end;
end;

procedure TADOMoreUpdate.Button2Click(Sender: TObject);
var
  item:string;
  buyr:string;
begin
with qry1 do
begin
  Memo1.Clear;
  First;
  while not eof do
  begin
    item:= trim(Fields[0].AsString);
    buyr:=trim(Fields[1].AsString);
    Memo1.Lines.Add('Item:='+item+';buyr:='+buyr);
    Next;
  end;
end;
end;

end.

执行后的效果



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值