Article View: pl.comp.lang.delphi
Article #346733Re: DataSet from REST/JSON
From: Jan Drawski
Date: Thu, 30 Aug 2018 20:41
Date: Thu, 30 Aug 2018 20:41
65 lines
3292 bytes
3292 bytes
W dniu 2018-08-28 o 10:28, ExM pisze:
> Mam pytanie,
> jak realizujecie pobieranie danych do DataSet'ów w przypadku konieczności pobierania ich przez REST / JSON ?
Osobiście właśnie też zaczynam zabawę z mORMotem.
> Czy są do tego jakieś komponenty czy trzeba się ręcznie pobawić w formatowanie i wczytać dane np. do jakiejś wirtualnej tabeli (MemoryTable) ?
Jeszcze nie korzystałem ale w pliku mORMot i SynCrossPlatformREST są
klasy TSQLTableJSON. TSQLTableJSON dziedziczy z TSQLTable. Mozna znaleźć
np: "UpdateFrom(const aJSON: RawUTF8"...
Można napisać SQLa wyciągającego strukturę tabeli i użyć Execute.
Trochę druciarstwa:
Props.GetFields('users'{table name}, Fields);
for I := 0 to Length(Fields) - 1 do
writeln(
Fields[I].ColumnName + ', ' +
Fields[I].ColumnTypeNative + ', ' +
IntToStr(Fields[I].ColumnLength) + ', ' +
ColumnTypeToStr(Fields[I].ColumnType)
);
Jeszcze coś z tej kategorii:
var
Rows : ISQLDBRows; // - from Execute
...
for I := 0 to Rows.ColumnCount - 1 do
begin
writeln(
Rows.ColumnName(I) + ', ' +
ColumnTypeToStr(Rows.ColumnType(I))
);
end;
Choć tu typy wyglądaja już tak (TSQLDBFieldType): ftUnknown, ftNull,
ftInt64, ftDouble, ftCurrency, ftDate, ftUTF8, ftBlob.
Z tego co widzę, to raczej nie przesyła się struktur, choć, odbiegając
trochę od tematu, jak się np. zapisuje zawartość FDMemTable do
strumienia czy pliku to typy danych są choć format tego moim zdaniem
jest mało czytelny.
Przy okazji, gdzieś znalazłem, może komuś się przyda, choć ja chwilowo
nie widzę zastosowania:
procedure TestQuery(ODBCConnProp: TSQLDBConnectionProperties);
var
SQLDBConnection: TODBCConnection;
Q: TQuery;
begin
SQLDBConnection := TODBCConnection.Create(ODBCConnProp);
Q := TQuery.Create(SQLDBConnection);
try
Q.SQL.Clear; // optional
Q.SQL.Add('select * from dbo.Station');
Q.Open;
finally
Q.Free;
end;
end;
--
Pozdrawiam
Janek
Technical Details
Message-ID:
<5b88568c$0$621$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mailReferences:
<489ed506-1d02-4b3f-a844-38869bcd600e@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!newsreader4.netcologne.de!news.netcologne.de!peer01.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: DataSet from REST/JSON Newsgroups: pl.comp.lang.delphi References: <489ed506-1d02-4b3f-a844-38869bcd600e@googlegroups.com> From: Jan Drawski <dfghdfg@o2.pl> Date: Thu, 30 Aug 2018 22:41:47 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <489ed506-1d02-4b3f-a844-38869bcd600e@googlegroups.com> Lines: 70 Message-ID: <5b88568c$0$621$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 37.47.42.21 X-Trace: 1535661708 unt-rea-a-02.news.neostrada.pl 621 37.47.42.21:7872 X-Complaints-To: abuse@news.neostrada.pl X-Received-Bytes: 2998 X-Received-Body-CRC: 4016813933 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit