zoukankan      html  css  js  c++  java
  • olevariant序列TDATASET

    使用OLEVARIANT可以序列任何类型的对象。下面的代码序列TDATASET。

    procedure TForm1.DatasetToVariant(var varResultSet: OleVariant;
                                        ADataset : TDataset);
    var
      m : Integer;
      nRecords, nColumns, nCurRec : Integer;
    begin
      nRecords := -1;
      nColumns := -1;

      try
        { Create the array... }
        nColumns := Max(0, ADataset.FieldCount-1);

         nRecords := Max(0, ADataset.RecordCount);

        varResultSet := VarArrayCreate([0, nColumns, 0, nRecords],
                                       varVariant);

        for m := 0 to nColumns do
          varResultSet[m, 0] := ADataset.Fields[m].DisplayLabel;

           ADataset.First;
        nCurRec := 1;

        while not ADataset.Eof do begin
               for m := 0 to nColumns do
            varResultSet[m, nCurRec] := ADataset.Fields[m].Value;

          ADataset.Next;
          Inc(nCurRec);
        end;
      except
        on E: Exception do
          raise Exception.Create('CreateVarArrayFromDataset() - ' +
                                  IntToStr(nRecords) +
                                 ' rec,'+IntToStr(nColumns)
                                 +'cols,'+E.Message);
      end;
    end;

  • 相关阅读:
    [Docker] Windows 宿主环境下,共享或上传文件到容器的方法
    [Docker]
    [Docker]
    [Docker]
    [Windows]
    [Linux] 树莓派 4B 安装 Ubuntu 19.10 (Eoan Ermine) IOT 版
    [Linux]
    [.Net] 什么是线程安全的并发集合
    [IOT]
    c++库大全
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2388267.html
Copyright © 2011-2022 走看看