日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Delphi手动创建数据集

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Delphi手动创建数据集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

習慣了.net的DataTable,便習慣性的認為Delphi中也有類似的東西,結果搞了好久才搞定,看來看去是拿著Delphi實現.net的思想,生搬硬套了,不過倒也解決了一些問題語言間的思想差別還是有的呃。

1數據集的創建CreatDataSet: TDataSet;

目標是創建一個類似于DataTable的對象,我們可以指定列的字段,也可以手動添加行。

在Delphi中是用DB.TDataSet來實現的(相當于DataTable,與.net的DataSet可是兩個概念啊)。

在這里要用到DBClient.TClientDataSet,至于兩者的關系,自己去查吧。

方法如下:

function TForm3.CreateDataSet: TDataSet;

var

dsTemp:TDataSet;

cdsTemp: TClientDataSet;

begin

//初始化

dsTemp := TDataSet.Create(Application);

try

??? //字段名設置

??? with dsTemp.FieldDefs do

??? begin

????? Add('code',ftString,8);

????? Add('name',ftString,20);

????? Add('Number',ftInteger);

??? end;

??? //創建DataSet

??? cdsTemp := TClientDataSet.Create(Application);

??? if dsTemp.FieldDefs <> nil then

??? begin

????? cdsTemp.FieldDefs.Assign(dsTemp.FieldDefs);

????? cdsTemp.CreateDataSet;

????? result := (cdsTemp as TDataSet);

??? end;

finally

??? //內存釋放

??? dsTemp.Free;

end;

end;

2 數據集數據的添加AddDataToSet;很簡單的 打開數據集-添加行-賦值-提交

function TForm3.AddDataToSet(AdsData: TDataSet): TDataSet;

var

intLoop:Integer;

begin

//打開數據集

AdsData.Open;

with AdsData do

begin

??? for intLoop := 0 to 10 do

??? begin

????? Append;//添加

????? FieldByName('Code').AsString := 'Code' + intToStr(intLoop);

????? FieldByName('Name').AsString := 'Name' + intToStr(intLoop);

????? FieldByName('Code').AsInteger := intLoop;

????? post;//提交

??? end;

end;

end;

3 修改數據集中某個Field的值 ChangeDataSetValue。這個在.net中可以直接改,不過在這里還是有區別的。這里我們把剛才建的數據集中Name Field的值給改掉

示例代碼如下:

?? AdsData.Open;????????????????????????????????????? //打開

?? AdsData.First;????????????????????????????????????

?? while Not AdsData.Eof do

?? begin

???? AdsData.FieldByName('Name').ReadOnly := false;???? //只讀屬性修改

???? AdsData.Edit;????????????????????????????????????? //打開編輯

???? AdsData.FieldByName('Name').AsString := 'NewName'; //修改

???? AdsData.Post;????????????????????????????????????? //提交

???? AdsData.Next;

?? end;

轉載于:https://www.cnblogs.com/dashan9zj/archive/2009/02/09/1386970.html

總結

以上是生活随笔為你收集整理的Delphi手动创建数据集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。