大家都知道tclientdataset的delta屬性儲存資料集的變化,但是delta是olevariant型別的屬性,這樣如果用delphi寫webservice,就有需要把它轉成xml,特別是其他語言也要用這個webservice的時候,因為如果delta能和xml相互轉換,delta包的結構就是透明的了。而tclientdataset卻沒有提供deltaxml這樣的屬性,之前在網上找了一下,發現網上的都是把delta賦給另乙個tclientdataset的data,然後再通過xmldata返回xml,但這樣為了乙個簡單的功能就得多建立乙個物件例項,感覺很不好,於是研究一下tclientdataset的原始碼,終於完成了delta與xml相互轉換的函式,**如下:
unit udelta;
inte***ce
uses dbclient,dsintf,varutils,activex;
function deltatoxml(delta:olevariant):string;
function xmltodelta(xmldata:string):olevariant;
implementation
procedure check(fdsbase:idsbase;status: dbresult);
varerrmsg: array[0..2048] of char;
begin
if status <> 0 then
begin
fdsbase.geterrorstring(status, errmsg);
raise edbclient.create(errmsg, status);
end;
end;
end.
XML與DataSet的相互轉換
一 xml 與 dataset 的關係如下圖所示 二 dataset 物件的常用方法如下 a.使用readxml 方法 從檔案或流中載入xml 資料,填充dataset 物件。dataset 物件.readxml 檔案路徑字串 stream 物件,xmlreadmode 列舉值 可以省略 b.使用w...
dynamic與xml的相互轉換
專案中很多地方採用dynamic新特性進行開發,因此本人參看了很多關於dynamic的資料。在新的一年開始,記錄下自己的學習經驗。dynamic關鍵字用於宣告乙個動態物件,然後通過該動態物件去呼叫方法或讀寫屬性。一 測試alexandra rusina 提供的參考資料 1 static void m...
XML與DataSet的相互轉換
xmldatasetconvert 該類提供了四種方法 1 將xml物件內容字串轉換為dataset 2 將xml檔案轉換為dataset 3 將dataset轉換為xml物件字串 4 將dataset轉換為xml檔案 xmldatasetconvert.cs using system using ...