我輩はブロガーではない。ネタもまだない

SASとかDelphiあたりの人様の役に立たないネタを提供します

DelphiからSASxptファイルにアクセスする(2:bug fixed)

CDATA FireDac ComponentsのBuild 7593がリリースされています。
前回の不具合が修正されていますので確認してみます。



まず、VCLフォームに以下のコンポーネントを貼り付けます

  • TFDPhysCDataSASXptDriverLink
  • TFDConnection
  • TFDQuery
  • TStringGrid
  • TFDGUIxWaitCursor


FDConnection1はドライバIDにCDataSASXpt、URIにc:\tempを指定します。(前回と同じ)
使用するデータセットは前回と同じtest1.xptです。

FormCreateに以下のコードを書きます

var
  i,j,c:integer;
begin
  fdquery1.SQL.Clear;
  fdquery1.SQL.Add('select * from test1;');
  fdquery1.Active:=True;
  fdquery1.Open();
  c:=fdquery1.Fields.Count;
  for i:=0 to c-1 do begin
    StringGrid1.Cells[i+1,0]:=fdquery1.Fields[i].DisplayName;
  end;
  j:=0;
  while(not(fdquery1.Eof)) do begin
    for i:=0 to c-1 do begin
      StringGrid1.Cells[0  ,j+1]:=(j+1).tostring;
      StringGrid1.Cells[i+1,j+1]:=fdquery1.Fields[i].Asstring;
    end;
    inc(j);
    fdquery1.Next;
  end;
  fdquery1.Close;
  StringGrid1.DrawingStyle:=gdsClassic;
  StringGrid1.FixedColor:=clAqua;
  StringGrid1.Cells[0,0]:='obs';
  StringGrid1.ColCount:=c+1;
  StringGrid1.RowCount:=j+1;
  StringGrid1.FixedCols:=1;
  StringGrid1.FixedRows:=1;

結果はこんな感じです。
f:id:japelin:20201023112652p:plain

f:id:japelin:20201023112718p:plain

f:id:japelin:20201023112743p:plain

正しく取得できてるっぽいですね。