人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

用Delphi開發數據庫程序經驗3則

用Delphi開發數據庫程序經驗3則

更新時間:2022-08-04 文章作者:未知 信息來源:網絡 閱讀次數:

  一、建立臨時表

  數據輸入是開發數據庫程序的必然環節。在Client/Server結構中,客戶端可能要輸入一批數據后,再向服務器的后臺數據庫提交,這就需要在本地(客戶端)建立臨時數據表來存儲用戶輸入的數據,待提交后,清除本地表數據。這種方法的好處是:提高輸入效率,減小網絡負擔。
  由于用戶一次輸入的數據量一般情況下較小(不會超過幾百條記錄),所以臨時表可以建立在內存中,這樣處理速度較快。

  方法1:使用查詢控件(TQuery)

  第1步:在窗體上放上查詢控件(TQuery),設置好所連接的數據表。
  第2步:使 TQuery. CachedUpdates=True;
        TQuery. RequestLive=True;
  第3步:在原有的SQL語句后加入一條Where子語句,要求加入這條Where子語句后SQL查詢結果為空。
  例如:
  SELECT Biolife.″Species No″, Category, Common_Name, Biolife.″Species Name″, Biolife.″Length (cm)″, Length_In, Notes, Graphic
   FROM ″biolife.db″ Biolife
  where Biolife.Category=′A′ and Biolife.Category=′B′
  這樣臨時表就建立完成了。

  方法2:使用代碼創建臨時表

  代碼如下:
  function CreateTableInMemory(const AFieldDefs:TFieldDefs):TDataSet;
  var
  TempTable:TClientDataSet;
  begin
   TempTable:=nil;
   Result:=nil;
   if AFieldDefs<>nil then
   begin
   try
   TempTable:=TClientDataSet.Create(Application);
   TempTable.FieldDefs.Assign(AFieldDefs);
   TempTable.CreateDataSet;
   Result:=(TempTable as TDataSet);
   Except
   if TempTable<>nil then
  TempTable.Free;

   Result:=nil;
   raise;
     end;
  end;
  end;

  在程序中按如下方法使用:
  procedure TForm1.Button1Click(Sender: TObject);
  var
  ADataSet:TDataSet;
  begin
   ADataSet:=TDataSet.Create(Self);
   with ADataSet.FieldDefs do
   begin
   Add(′Name′,ftString,30,False);
   Add(′Value′,ftInteger,0,False);
   end;

   with DataSource1 do
   begin
   DataSet:=CreateTableInMemory(ADataSet.FieldDefs);
   DataSet.Open;
   end;

   ADataSet.Free;
  end;

  臨時表創建完成。

  方法1使用簡單,但由于利用查詢控件,清空數據時需要查詢服務器后臺數據庫,所以速度稍慢,而且不適用于臨時表中各個字段由數個數據表的字段拼湊而成的情況。方法2適用范圍廣、速度快,但需要編寫代碼。(代碼中TFieldDefs的使用方法十分簡單,見Delphi的聯機幫助)。

  二、配置數據引擎(BDE、SQL Link)
  
  有關數據庫程序分發時,需要攜帶數據引擎(BDE、SQL Link),并且在客戶端安裝完程序后還需要配置數據引擎,如用戶名(username)、密碼(Password)等等。如果手工配置的話,工作量比較大(根據客戶機數量而定)。而InstallShield For Delphi又好像沒有這方面的選項,其實InstallShield For Delphi可以做到,在生成安裝程序的目錄里有一個*.iwz的文本文件,只要在[IDAPI Alias]片段中手工加入即可。 例如:
   [IDAPI Alias]
   usesname=SYSDBA
   password=masterkey
  安裝程序后數據引擎自動配置完畢。

  三、在InterBase數據庫中使用函數

  程序員可能在用InterBase作為后臺數據庫時,會為其提供的函數過少而感到不方便(只有四個),無法方便地編寫出復雜的存儲過程。InterBase本身無法編寫函數,但它可以使用外部函數(調用DLL中的函數)。下例中說明如何在InterBase 中聲明SUBSTR函數。
  DECLARE EXTERNAL FUNCTION SUBSTR
   CSTRING(80), SMALLINT, SMALLINT
   RETURNS CSTRING(80)
   ENTRY_POINT ″IB_UDF_substr″ MODULE_NAME ″ib_udf″

  其中:MODULE_NAME為DLL的名稱,ENTRY_POINT為函數名。
  聲明后便可以使用,例如:
   select SUBSTR(country)
   from country

  本例使用的是Delphi安裝時自帶的IBLocal數據庫。用戶也可以自己編寫函數來擴充InterBase 。


溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 陇南市| 兖州市| 和龙市| 安新县| 乐安县| 平原县| 来宾市| 临夏县| 乐陵市| 台前县| 龙口市| 芮城县| 德令哈市| 赫章县| 瑞安市| 崇文区| 梓潼县| 大英县| 平山县| 平塘县| 城市| 和平县| 百色市| 永年县| 台北县| 齐齐哈尔市| 明水县| 神农架林区| 西宁市| 和田市| 苏尼特左旗| 龙州县| 扬州市| 定远县| 吴桥县| 太谷县| 米泉市| 平塘县| 吕梁市| 汶上县| 清河县|