<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    konhon

    忘掉過去,展望未來。找回自我,超越自我。
    逃避不一定躲的過, 面對不一定最難過, 孤單不一定不快樂, 得到不一定能長久, 失去不一定不再擁有, 可能因為某個理由而傷心難過, 但我卻能找個理由讓自己快樂.

    Google

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      203 Posts :: 0 Stories :: 61 Comments :: 0 Trackbacks

    2007年3月29日 #

       很多股民常常感到孤獨無助,買入的股票總是被套,這里面折射出一個問題,那就是你沒有真正的掌握好買入點,今天我就在這里給大家講一講如何把握買入點。

      由于股票變化無常,主力更是絞盡腦汁和散戶斗智斗勇,所以買入法也沒有固定格式,我在這里只簡單的介紹幾種很有效的方法,僅供你借鑒。

         1、量縮法。顧名思義,就是當股票在一定“趨勢和條件”下,成交量開始萎縮到不能再萎縮時,說明下跌能量消耗已盡,此時就是最好的買入點。所謂的“趨勢和條件”是講——這只股票運行趨勢必須是在上升通道或低位震蕩中,當它連續下跌兩到三天時,成交量已經萎縮很多,股價波動范圍已經很小,盤中也不再見有大的買單,特別是遇到大盤下跌時,它也不再下跌,這說明這只股票到了“谷”底,隨時有反彈和新的行情發動,此時就是最價買入點。例如600297在1月30號到2月2號,連續下跌了四天,切成交量逐步萎縮,2月2號就是個最價買點。

         2、前高突破法。當一只股票經過一段時間的上漲,之后開始進入回調,當經過一段時間的調整,再次開始放量攻擊前期高點時,此時也是買入點。但是這里最難把握的就是主力的假突破,很容易上當,這需要你自己正確判斷。比方說600983在1月23達到一個高點后,2月8號開始放量攻擊前期高點,那么2月8號就是最價買點。而600717在3月8號就是一個假突破。我特別強調一點,最好是出現三次沖擊前期高點的股票,把握性最大。

         3、長陽之后等待法。就是當某只股票出現長陽甚至是漲停時,第二天它很可能不再連續拉升,而是出現小幅的調整,此時也是買入點,例如600723在1月18日就是一個買入點。

         4、誘空識破法。很多主力在進入下一波的大行情中,往往做最后的誘空洗盤。此時也是最價買入法,這需要你高超的識盤技巧。例如,600176在1月31號,出現了一條放量的長陰,其實那是誘空,做出這樣的判斷是要對這只股票的基本面和技術面都非常熟悉才行。

         5、大換手率的等待法。當某只股票在低位(特別強調是低位)出現大換手率時,說明主力殺入,你隨時可以跟進。例如600178在1月19和22連續兩天出現超過12%的還手率,之后再出現低點時,你就可以殺入了。
    posted @ 2007-04-04 06:52 konhon 優華 閱讀(1432) | 評論 (0)編輯 收藏

    http://www.openitpower.com/wenzhang/97/10846_1.html

      與TTable、TQuery一樣,TClientDataSet也是從TDataSet繼承下來的,它通常用于多層體系結構的客戶端。TClientDataSet最大的特點是它不依賴于BDE(Borland Database Engine),但它需要一個動態鏈接庫的支持,這個動態鏈接庫叫DBCLIENT.DLL。在客戶端,也不需要用TDatabase構件,因為客戶端并不直接連接數據庫。
      由于TClientDataSet是從TDataSet繼承下來的,所以,它支持諸如編輯、搜索、瀏覽、糾錯、過濾等功能。由于TClientDataSet在內存中建立了數據的本地副本,上述操作的執行速度很快。也正是由于TClientDataSet并不直接連接數據庫,因此,客戶程序必須提供獲取數據的機制。在Delphi 4中,TClientDataSet有三種途徑獲取數據:
    .從文件中存取數據。
    .從本地的另一個數據集中獲取數據。
    .通過IProvider接口從遠程數據庫服務器獲取數據。
      在一個客戶程序中,可以同時運用上述三種機制獲取數據。
    11.1 瀏覽和編輯數據
      和其他數據集構件一樣,可以用標準的數據控件顯示由TClientDataSet引入的數據集,當然,這需要借助于TDataSource構件。
      由于TClientDataSet是從TDataSet繼承下來的,所以,凡是其他數據集構件支持的功能,TClientDataSet構件也大致具備。不同的是,TClientDataSet能夠在內存中建立數據的副本,因此,TClientDataSet比其他數據集構件增加了一些特殊的功能。
    11.1.1 瀏覽數據
      可以用標準的數據控件顯示由TClientDataSet引入的數據集。在運行期,可以調用諸如First、GotoKey、Last、Next和Prior等函數來瀏覽數據。
      TClientDataSet也支持書簽功能,可以用書簽來標記某條記錄,以后就可以方便地找到這條記錄。
      對于TTable、TQuery等數據集構件來說,只能讀RecNo屬性來判斷當前記錄的序號。對于TClientDataSet構件來說,還可以寫RecNo屬性,使某一序號的記錄成為當前記錄。
    11.1.2 CanModify屬性
      TDataSet的CanModify屬性用于判斷數據集中的數據是否可以修改。CanModify屬性本身是只讀的,也就是說,數據是否能夠修改不取決于應用程序。
      不過,TClientDataSet構件有其特殊性,因為TClientDataSet已經把數據在內存中建立了副本,因此,應用程序可以決定是否允許修改數據。如果不允許用戶修改數據,只要把ReadOnly屬性設為True,此時,CanModify屬性肯定返回False。
      與其他數據集構件不同,修改TClientDataSet構件的ReadOnly屬性時,不需要事先把Active屬性設為True。
    11.1.3 取消修改
      TClientDataSet傳輸數據的基本單位稱為數據包,當前的數據包可以由Data屬性來訪問。不過,用戶對數據的修改并不直接反映到Data屬性中,而是臨時寫到一個日志即Delta屬性中,這樣做的好處是以后隨時可以取消修改。
      不過,這里要說明一點,盡管用戶的修改并沒有反映到Data,當用戶在數據控件中看到的卻是最新修改的數據。如果一條記錄被反復修改了多次,用戶看到的只是最新的數據,但日志中卻記載了多次。
      要取消上一次的修改,調用UndoLastChange函數。UndoLastChange需要傳遞一個布爾類型的參數叫FollowChange,如果FollowChange參數設為True,光標就移到被恢復的記錄上,如果FollowChange參數設為False,光標仍然在當前記錄上。
      ChangeCount屬性返回日志中記載的修改次數。如果一條記錄被反復修改了多次,每調用一次UndoLastChange能夠逐級取消上一次的修改。
      UndoLastChange只能取消上一次的修改,如果想一下子取消所有的修改,首先要選擇一個記錄,然后調用RevertRecord。RevertRecord將從日志中取消所有對當前記錄的修改。
      TClientDataSet還有一個SavePoint屬性,它能把當前的編輯狀態保存起來,以后隨時可以返回當時的狀態。例如,可以這樣保存當前的狀態:
      BeforeChanges := ClientDataSet1.SavePoint;
      以后,可以這樣來恢復當時的狀態:
      ClientDataSet1.SavePoint := BeforeChanges;
      應用程序可以保存多處狀態,可以恢復其中一個狀態,不過,一旦某個狀態被恢復,在其之后的狀態就無效。
      如果要一下子取消日志中記載的所有修改,可以調用CancelUpdates函數。CancelUpdates將把日志清空,取消所有的修改。
      如果LogChanges屬性設為False,用戶對數據的修改就會直接反映到Data屬性中。
    11.1.4 合并修改
      要把日志中記載的修改合并到Data屬性中,有兩種方式,具體使用哪一種方式,取決于應用程序獲取數據的機制。不過,不管是哪種機制,合并后,日志自動被清空。
      對于一個從文件中獲取數據的程序來說,只要調用MergeChangeLog函數,就把日志中記載的修改合并到Data屬性中。不用擔心其他用戶同時修改了數據。
      對于一個從應用服務器獲取數據的程序來說,就不能調用MergeChangeLog來合并數據,而要調用ApplyUpdates函數,ApplyUpdates會把日志中記載的修改傳遞給應用服務器,待應用服務器成功地把數據更新了數據庫服務器后,才會合并到Data屬性中。
    11.1.5 糾錯
      TClientDataSet支持糾錯功能。一般情況下,需要自己建立糾錯規則,以便對用戶輸入的數據進行糾錯。
      此外,如果獲得了IProvider接口的話,還可以從遠程服務器引入糾錯規則。
      有時候,客戶端可能需要暫時禁止糾錯,因為客戶端從應用服務器檢索數據是分階段進行的,在所有的數據檢索完畢之前,有些糾錯規則很可能會報錯。
    要暫時禁止糾錯,可以調用DisableConstraints,要重新允許糾錯,可以調用EnableConstraints函數。DisableConstraints和EnableConstraints實際上都是作用于一個內部的計數。
    11.2 索 引
      使用索引有這么幾個好處:
    .在數據集中定位記錄比較快。
    .能夠在兩個數據集之間建立Lookup或Master/Detail關系。
    .可以對記錄排序。
      在多層體系結構中,當客戶程序從應用服務器檢索數據時,它同時獲得了默認的索引。默認的索引叫DEFAULT_ORDER,可以使用這個索引排序,但不能修改或刪除這個索引。
      除了默認的索引外,TClientDataSet還對日志中記載的記錄自動建立了一個副索引叫CHANGEINDEX。與DEFAULT_ORDER一樣,不能修改或刪除這個副索引。
      另外,還可以使用數據集中已建立的其他索引,或者自己建立索引。
    11.2.1 創建一個新的索引
      要創建一個新的索引,可以調用AddIndex。AddIndex需要傳遞若干個參數:
      一是Name參數,用于指定索引名。在運行期切換索引時需要用到索引的名稱。
      二是Fields參數,它是一個字符串,用于指定索引中的字段名,彼此之間用分號隔開。
      三是Options參數,用于設置索引的選項,包含ixDescending元素表示按降序排列,包含ixCaseInsensitive元素表示大小寫不敏感。
      四是DescFields參數,它也是一個字符串,用于指定若干個字段名,這些字段將按照降序排列。
      五是CaseInsFields參數,它的作用與DescFields參數類似,包含在CaseInsFields參數中的字段將對大小寫不敏感。
      六是GroupingLevel參數,用于指定分組級別,其值不能超過索引中的字段數。
      下面的代碼創建了一個索引:
    If Edit1.Text <> '' and ClientDataSet1.Fields.FindField(Edit1.Text) then
    Begin
    ClientDataSet1.AddIndex(Edit1.Text+'Index',Edit1.Text,  
      [ixCaseInsensitive],'','',0);
    ClientDataSet1.IndexName := Edit1.Text + 'Index';
    End;
    為了避免創建一個索引,可以臨時用IndexFieldNames屬性來指定若干個字段,讓數據集按這些字段排序。
    11.2.2 刪除和切換索引
      要刪除一個先前創建的索引,可以調用DeleteIndex并指定要刪除的索引名稱。注意:DEFAULT_ORDER和CHANGEINDEX不能刪除。
      如果建立了多個索引,可以任意選擇其中的一個索引,這就要用到IndexName屬性。
    11.2.3 用索引把數據分組
      選擇了一個索引后,數據集將自動按其中的字段進行排序。這樣,臨近的記錄往往在關鍵字段上含有相同的值。例如,假設有一個表是這樣的:
    SalesRep Customer OrderNo Amount
    1      1     5    100
    1      1     2    50
    1      2     3    200
    1       2     6    75
    2      1     1    10
    2      3     4    200
      可以看出,SalesRep字段的值有重復的。對于SalesRep字段的值為1的來說,Customer字段的值也有重復的。這就是說,可以按SalesRep字段分組,進而再按Customer字段分組。顯然,這里的分組級別是不同的,按SalesRep字段建立的分組屬于第一級,按Customer字段建立的分組屬于第二級。實際上,分組級別取決于字段在索引中的順序。
      TClientDataSet可以決定是否按照分組級別來顯示記錄的值。例如,也許想以下面這種形式顯示數據:
    SalesRep Customer OrderNo Amount
    1      1    5    100
               2    50
           2    3    200
               6    75
    2      1    1    10
    2      3    4    200
      要判斷當前記錄某一級的什么位置,可以調用GetGroupState函數。GetGroupState函數需要傳遞一個參數,用于指定分組級別。
    11.3 計 算 字 段
      與其他數據集一樣,也可以在TClientDataSet建立的數據集中增加計算字段。計算字段的值是基于同一個記錄中的其他字段計算出來的。
      在其他數據集中,只要用戶修改了數據或當前記錄發生改變,就會觸發OnCalcFields事件,換句話說,計算字段的值就被計算一次。
      TClientDataSet引入了“內部計算字段”的概念。與一般的計算字段不同的是,內部計算字段的值將隨其他字段的值一起存取,這樣,只有當用戶修改了數據才會觸發OnCalcFields事件,如果僅僅改變了當前記錄,不會觸發OnCalcFields事件。也就是說,內部計算字段的值需要重新計算的機會大大減少。
      在處理OnCalcFields事件的句柄中,首先要判斷State屬性。如果State屬性返回dsInternalCalc,此時需要計算內部計算字段的值。如果State屬性返回dsCalcFields,此時需要計算一般的計算字段的值。
    11.4 統 計 值
      TClientDataSet增加了統計的功能,它可以基于分組自動計算總和、平均、計數、最大、最小值。當用戶編輯數據時,這些統計值會自動跟著變化。
    11.4.1 指定統計方式
      要指定怎樣進行統計,就要用到Aggregates屬性。這個屬性是一個TAggregates對象,它用于管理一組TAggregate對象。
      在設計期,可以單擊Aggregates屬性邊上的省略號按鈕打開如圖11.1所示
    的編輯器。
      圖11.1 管理一組TAggregate對象
      單擊按鈕可以增加一個TAggregate對象,單擊按鈕可以刪減一個TAggregate對象,單擊按鈕可以把TAggregate對象前移,單擊按鈕可以把TAggregate對象后移。
      可以用字段編輯器專門創建一個用于表達統計值的字段,該字段的類型必須是“Aggregate”。Delphi 4會自動創建一個TAggregate對象,并加到Aggregates屬性中。選擇一個TAggregate對象,Object Inpector將顯示該對象的屬性。
      其中,Expression屬性用于指定統計表達式,例如:
    Sum(Field1)
      也可以是比較復雜的表達式:
    Sum(Qty * Price) - Sum(AmountPaid)
      在表達式中,可以使用下列統計運算符:
    .Sum計算一組數據的總和。
    .Avg計算一組數據的平均值。
    .Count計算一組數據中的非空值的個數。
    .Min計算一組數據的最小值。
    .Max計算一組數據的最大值。
      除了上述幾個統計運算符外,還可以使用過濾條件中所能使用的運算符,但不能嵌套。在一個表達式中,可以混合出現幾個統計值或常量,但不能混合出現統計值和字段。
      Sum(Qty * Price){合法}
      Max(Field1) - Max(Field2){合法}
      Avg(DiscountRate) * 100{合法}
      Min(Sum(Field1)){非法,不能嵌套}
      Count(Field1) - Field2{非法,統計值和字段不能混合出現在一個表達式中}
    11.4.2 指定分組
      默認情況下,統計值是基于數據集中所有的記錄計算出來的。不過,也可以針對一部分記錄計算統計值,這就需要事先建立分組。
      前面在介紹索引時已經提到分組的概念。可以通過IndexName屬性和GroupingLevel屬性來選擇使用哪個索引以及最大的分組級別。
      例如,假設有一個表是這樣的:
    SalesRep Customer OrderNo Amount
    1      1     5    100
    1      1     2    50
    1      2     3    200
    1       2     6    75
    2      1     1    10
    2      3     4    200
      如果要按SalesRep字段分組,并且指定其中的第一級,程序代碼應當這樣寫:
    Agg.Expression := 'Sum(Amount)';
    Agg.IndexName := 'SalesCust';
    Agg.GroupingLevel := 1;
    Agg.AggregateName := 'Total for Rep';
    11.4.3 怎樣獲取統計值
      要獲取統計值,可以調用TAggregate對象的Value函數。如果統計值是基于數據集中所有的記錄計算出來的,隨時可以調用Value函數。如果統計值是基于分組計算出來的,必須保證當前記錄正好位于該分組內。因此,在調用Value之前,最好先調用GetGroupState函數看看當前記錄是否位于該分組內。
      要在數據控件中顯示統計值,必須事先在字段編輯器中創建一個永久字段對象,該字段的類型必須是Aggregate。
    11.5 數 據 包
      通過Data屬性可以訪問客戶程序從應用服務器檢索到的數據。程序示例如下:
    Procedure TForm1.Button1Click(Sender: TObject);
    Begin
    ClientDataSet1.Data := ClientDataSet1.Provider.DataRequest(FilterEdit.Text);
    End;
    11.5.1 直接對Data屬性賦值
      前面講過,客戶程序既可以通過IProvider接口獲取數據,也可以從另一個數據集獲取數據,后者就是通過Data屬性賦值的。程序示例如下:
      ClientDataSet1.Data := ClientDataSet2.Data;
      一旦Data被賦值,就可以用標準的數據控件顯示這些數據。
      注意:當從另一個數據集獲取數據時,另一個數據集的日志也將被復制過來,但不包括原來的范圍和過濾條件。
      如果要從另一個基于BDE的數據集中獲取數據,可以通過數據集構件的Provider屬性,程序示例如下:
      ClientDataSet1.Data := Table1.Provider.Data;
      如果要從一個自定義的數據集獲取數據,首先要創建一個臨時的TProvider構件,然后設置其DataSet屬性指定這個自定義的數據集。程序示例如下:
    TempProvider := TDataSetProvider.Create(Form1);
    TempProvider.DataSet := SourceDataSet;
    ClientDataSet1.Data := TempProvider.Data;
    TempProvider.Free;
    11.5.2 在數據包中加入自定義的信息
      可以把自定義的信息加到數據包中。當把數據保存到文件或流中時,這些自定義的信息也將保存到文件或流中。如果把數據包直接賦值給另一個數據集的話,這些自定義的信息也將被復制。
      要把自定義的信息加到數據包中,可以調用SetOptionalParam函數。要從數據包中檢索自定義的信息,可以調用GetOptionalParam。程序示例如下:
    Procedure TAppServer.Provider1UpdateData(Sender: TObject; DataSet: TClientDataSet);
    var
    WhenProvided: TDateTime;
    Begin
    WhenProvided := DataSet.GetOptionalParam('TimeProvided');
    ...
    End;
    11.5.3 克隆另一個數據集
      調用TClientDataSet的CloneCursor函數可以獲得一個數據集的完全相同的副本。它與直接通過Data屬性賦值是有區別的。
      區別之一:數據在兩個數據集之間是共享的,修改其中一個將同時修改另一個。
      區別之二:除了數據外,CloneCursor函數還復制了一些屬性和事件,這取決于Reset和KeepSettings參數怎樣設置。
       CloneCursor函數需要傳遞三個參數,其中,Source參數指定源數據集,Reset參數和KeepSettings參數用于設置除了數據外是否還要復制下列屬性和事件:Filter、Filtered、FilterOptions、OnFilterRecord、IndexName、MasterSource、MasterFields、ReadOnly、RemoteServer、ProviderName、Provider。
      如果Reset和KeepSettings參數都設為False,源數據集的上述屬性和事件都將被復制給目標數據集。如果Reset參數設為True,目標數據集的上述屬性和事件都將被清空。如果Reset參數設為False,而KeepSettings參數設為True,目標數據集的上述屬性和事件不變,不過,必須保證這些屬性和事件與克隆后的數據相容。
    11.6 與應用服務器通訊
      在多層體系結構中,客戶程序通過IProvider接口與應用服務器交換數據。這一章介紹怎樣在客戶端獲得IProvider接口、怎樣向應用服務器傳遞參數、怎樣向應用服務器請求數據、怎樣把用戶對數據的修改寫到數據庫中。
    11.6.1 怎樣在客戶端獲得IProvider接口
      在單層應用程序以及工作在“公文包”模式下的多層應用程序中,不需要用到IProvider接口。而在多層體系結構中,客戶程序要與應用服務器交換數據,首先必須獲得IProvider接口,這就要用到RemoteServer屬性和ProviderName屬性。
      RemoteServer屬性用于指定客戶端的MIDAS連接構件。MIDAS連接構件又稱Data Broker,用于建立和維護與應用服務器的連接。
      在設計期,正確設置了RemoteServer屬性后,就可以在對象觀察器中為ProviderName屬性選擇一個值,實際上就是選擇應用服務器上的一個TProvider構件。
    11.6.2 向應用服務器傳遞參數
      客戶程序可以向應用服務器傳遞參數,這些參數實際上是傳遞給應用服務器上的TQuery構件或TStoredProc構件。既可以在設計期也可以在運行期設置參數。
      在設計期,可以單擊Params屬性邊上的省略號按鈕,打開一個如圖11.2所示的編輯器。
      圖11.2 設置參數
      單擊按鈕可以增加一個參數,單擊按鈕可以刪減一個參數,單擊按鈕可以把一個參數前移,單擊按鈕可以把一個參數后移。
      選擇一個參數,對象觀察器將顯示該參數(TParam對象)的屬性。
      在運行期可以調用TParams的CreateParam函數來創建一個參數。例如,下面的代碼創建了一個參數叫CustNo,它的使用類型是ptInput,數據類型是ftInteger,它的值設為605。
    With ClientDataSet1.Params.CreateParam(ftInteger, 'CustNo', ptInput) Do
    AsInteger := 605;
      設置好參數以后,如果TClientDataset的Active屬性是False,只要把Active屬性設為True,這些參數將被自動傳遞給應用服務器。如果Active屬性已經為True,就要調用SendParams函數把參數傳遞給應用服務器。
      注意:傳遞給應用服務器的參數必須與TQuery構件或TStoredProc構件的參數匹配,包括名稱、數據類型和參數類型。
    11.6.3 怎樣向應用服務器請求數據
      TClientDataSet提供了兩個屬性和三個方法,用于怎樣向應用服務器請求數據:
      一是FetchOnDemand屬性。如果這個屬性設為True,TClientDataSet會根據需要自動檢索附加的數據包,例如BLOB字段的值或者嵌套表的內容。如果這個屬性設為False,程序需要顯式地調用GetNextPacket才能獲得這些附加的數據包。
      二是PacketRecords屬性,用于設置一個數據包中最多可容納的記錄數,設為-1表示一個數據包可以容納數據集的所有記錄。
      三是GetNextPacket函數,用于向應用服務器檢索下一個數據包,并把檢索到的數據包添加到前一次檢索到的數據包的后面。這個函數返回實際檢索到的記錄數。
      四是FetchBlobs過程,用于從應用服務器檢索BLOB字段的值。如果FetchOnDemand屬性設為True,就沒必要調用FetchBlobs函數。
      五是FetchDetails過程,用于檢索嵌套表中的數據。如果FetchOnDemand屬性設為True,就沒必要調用FetchDetails函數。
    11.6.4 更新數據庫
      在多層體系結構中,用戶在客戶端修改了數據后,需要把最新的數據寫到數據庫中,這就要調用TClientDataSet的ApplyUpdates函數。
      ApplyUpdates只需要傳遞一個參數叫MaxErrors,用于指定一個整數,當遇到無法更新的記錄超過這個數時,此次更新就中止。如果MaxErrors參數設為0,表示只要遇到一個錯誤更新就中止,客戶端的日志保持不變。如果MaxErrors參數設為-1,當應用服務器發現有錯誤的記錄,就嘗試更新下一個記錄,等所有的記錄都嘗試過以后才返回。
      ApplyUpdates會自動調用Reconcile函數,進而調用應用服務器上的TProvider構件的ApplyUpdates函數去更新遠程的數據庫服務器。沒有被DBMS服務器認可的記錄通過Reconcile返回給客戶端,此時將在客戶端觸發OnReconcileError事件讓您更正錯誤。最后,ApplyUpdates函數返回仍然沒有被認可的記錄數。
    11.7 在文件中存取數據
      要從文件中讀取數據,可以調用LoadFromFile函數。LoadFromFile函數需要傳遞一個參數,用于指定文件名。文件名應包含完整的路徑。如果客戶程序總是從一個固定的文件中讀取數據,可以設置FileName屬性指定一個文件名,以后,當TClientDataSet引入的數據集打開時,就自動從這個文件中讀取數據,不需要調用LoadFromFile。
      要從流中讀取數據,可以調用LoadFromStream。LoadFromStream需要傳遞一個參數,用于指定一個流對象。
      注意:LoadFromFile(LoadFromStream)只能從先前用SaveToFile(SaveToStream)保存的文件中讀取數據。
      要把數據保存到文件中,可以調用SaveToFile函數。SaveToFile需要傳遞一個參數,用于指定文件名。如果指定的文件已存在,文件中的數據將被覆蓋。如果客戶程序總是把數據保存到一個固定的文件中,可以設置FileName屬性指定一個文件名,當TClientDataSet引入的數據集關閉時,就自動把數據保存到這個文件中,不需要調用SaveToFile。
      要把數據保存到流中,可以調用SaveToStream。SaveToStream需要傳遞一個參數,指定一個流對象。
      注意:當把數據保存到文件或流中時,日志中記載的修改仍然保留。這樣,當下次調用LoadFromFile或LoadFromStream讀取數據時,仍然可以恢復原來的數據。
    posted @ 2007-03-29 05:57 konhon 優華 閱讀(1642) | 評論 (0)編輯 收藏

    主站蜘蛛池模板: 亚洲成AⅤ人影院在线观看| 美女被cao免费看在线看网站| 国产做床爱无遮挡免费视频| 亚洲中文无码亚洲人成影院| 99久久免费国产香蕉麻豆| 亚洲沟沟美女亚洲沟沟| 国产精品久久永久免费| 亚洲六月丁香婷婷综合| 最新中文字幕免费视频| 亚洲精品国产av成拍色拍| 国产免费观看视频| 九一在线完整视频免费观看| 国产AV无码专区亚洲AV手机麻豆| 国产精品福利在线观看免费不卡| 亚洲色精品aⅴ一区区三区| 日本免费电影一区二区| 亚洲精品日韩专区silk| 日韩免费无码一区二区视频| 国产精品亚洲一区二区无码| 国内精品99亚洲免费高清| 日本免费电影一区二区| 色天使亚洲综合在线观看| 免费国产精品视频| 国产在线一区二区综合免费视频| 91亚洲精品视频| 国产精品色午夜视频免费看| 一级女人18片毛片免费视频 | jizz免费观看| 亚洲黄色网址在线观看| 国内外成人免费视频| 黄色短视频免费看| 亚洲第一网站免费视频| 国产成人免费高清在线观看| 免费无码又爽又刺激高潮软件| 亚洲国产美女视频| 亚洲高清免费视频| 成人免费激情视频| 边摸边吃奶边做爽免费视频网站 | 久久久青草青青国产亚洲免观| 国产午夜不卡AV免费| 亚洲欧美国产国产综合一区|