首页 > 代码库 > 枚举与字符串转及RecordSet转XML,JSON
枚举与字符串转及RecordSet转XML,JSON
function AdoToJs(ado: TADOQuery): string;var I, J: Integer; json: string;begin json := ‘{columns:[‘; for I := 0 to ado.FieldCount - 1 do begin json := json + ‘{name:"‘ + ado.Fields[I].FieldName + ‘",type:"‘ + DbTypeToStr(ado.Fields[I].DataType) + ‘"}‘; if I < ado.FieldCount - 1 then json := json + ‘,‘; end; json := json + ‘],rows:[‘; for I := 0 to ado.RecordCount - 1 do begin json := json + ‘{‘; for J := 0 to ado.FieldCount - 1 do begin json := json + ado.Fields[J].FieldName + ‘:"‘ + ado.FieldByName(ado.Fields[J].FieldName).AsString + ‘"‘; if J < ado.FieldCount - 1 then json := json + ‘,‘; end; json := json + ‘}‘; if I < ado.RecordCount - 1 then json := json + ‘,‘; end; json := json + ‘]}‘; Result := json;end;function AdoToXml(ado: TADOQuery): string;begin Result := RecordsetToXMLString(ado.Recordset);end;function XmlToAdo(xml: string): TADOQuery;var ado: TADOQuery;begin ado := TADOQuery.Create(nil); ado.Recordset := RecordsetFromXMLString(xml); Result := ado;end;function RecordsetToXMLString(const Recordset: ADOInt._Recordset): string;var RS: Variant; Stream: TStringStream;begin Result := ‘‘; if Recordset = nil then Exit; Stream := TStringStream.Create(‘‘, TEncoding.UTF8); try RS := CreateOleObject(‘ADODB.Recordset‘); RS := Recordset; RS.Save(TStreamAdapter.Create(Stream) as IUnknown, adPersistXML); Stream.Position := 0; Result := Stream.DataString; finally Stream.Free; end;end;function RecordsetFromXMLString(const xml: string): ADOInt._Recordset;var RS: Variant; Stream: TStringStream;begin Result := nil; if xml = ‘‘ then Exit; try Stream := TStringStream.Create(xml, TEncoding.UTF8); Stream.Position := 0; RS := CreateOleObject(‘ADODB.Recordset‘); RS.Open(TStreamAdapter.Create(Stream) as IUnknown); Result := IUnknown(RS) as ADOInt._Recordset; finally Stream.Free; end;end;function DbTypeToStr(dbtype: TFieldType): string;begin Result := GetEnumName(TypeInfo(TFieldType), Ord(dbtype))end;function StrToDbType(const dbtype: string): TFieldType;begin Result := TFieldType(GetEnumValue(TypeInfo(TFieldType), dbtype));end;
http://www.cnblogs.com/toosuo/archive/2012/02/18/2357315.html
枚举与字符串转及RecordSet转XML,JSON
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。