程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 數據錄入時自動復制原記錄

數據錄入時自動復制原記錄

編輯:Delphi
        在數據庫應用系統的數據錄入過程中,各條記錄之間有大量的重復數據,如果每條記錄都讓錄入人員全部手工錄入,其間的重復勞動是相當大的,既降低了工作效率,又顯得我們的軟件不夠“專業”。
        其實我們完全可以用代碼來實現數據庫表記錄的自動復制,當客戶錄入一條新的記錄的時候,我們可以把當前記錄的數據復制到錄入界面的各輸入框中,客戶只需做很少的修改,就完成了一條新記錄的編輯,然後直接保存就可以了。
        本文的示例用 Delphi5.0 制作,使用 ADO 方法存取 Access 數據庫中的表 test,表的第一個字段是“自動編碼”字段,在記錄復制時要跳過。首先在 Form1 上添加 ADOConnection1、ADODataSet1、DataSource1、DBGrid1 等數據庫相關組件,使用連接向導把 ADOConnection1 與 Access 數據庫連接起來,把 ADOConnection1 的 LoginPrompt 屬性設置為 False,其它組件的對應屬性設置如下:
      ADODataSet1.Connection :=ADOConnection1;
      ADODataSet1.CommandText :='select * from test';
      ADODataSet1.Active :=True;
      DataSource1.DataSet :=ADODataSet1;
      DBGrid1.DataSource :=DataSource1;
        這樣以來,就可以在 DBGrid 中看到數據庫表 test 中的數據了。
        然後可以在窗體上添加一些數據敏感的數據輸入控件(如 DBEdit 等),將其 DataSource 屬性設為 DataSource1,再分別與各字段綁定起來。
        再在窗體上添加 2 個按鈕 Button1 和 Button2,它們的觸發事件如下:
      procedure TForm1.Button1Click(Sender: TObject);
      var
         strList: TStringList;  // 聲明字符串列表
         i: integer;
      begin
        strList :=TStringList.Create;
        for i :=0 to ADODataSet1.FIEldCount-1 do
          strList.Add(ADODataSet1.FIElds[i].AsString);
              // 把各字段的值保存到 TStringList 中。不能應用數組,
              // 因為數組不能保存不同類型的數據。
        ADODataSet1.Insert;   // 插入一條新記錄
        for i :=1 to form1.ADODataSet1.FIEldCount-1 do
          ADODataSet1.FIElds[i].AsString := strList[i];
              // 把 TStringList 中的數據寫回到新的記錄中。
              // 注意 TStringList 的下標從 1 開始,跳過了表的“自動編碼”字段。
        strList.Free;
      end;

      procedure TForm1.Button2Click(Sender: TObject);
      begin
        ADODataSet1.Post;  // 保存新記錄
      end;
   
        程序編譯運行後,按 Button1 按鈕,就會添加一條新的記錄,記錄的內容為添加前記錄指針指向的記錄的內容。我們可以對現有數據做些改動,然後按 Button2 按鈕保存新記錄。程序的有關說明在代碼中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved