Sign in Join
Wiki copytemporary

fpjsondataset/pl: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: fpjsondataset/pl

OldNewLine
1+**fpjsondataset** jest to moduł fcl-db zawierający klasę zbioru danych (dataset) umożliwiającą uzyskanie dostępu do danych JSON w postaci prostych struktur tabel.
2+
3+## TJSONDataSet
4+
5+TJSONDataSet jest to klasa zbioru danych (dataset) używana do obsługi danych w postaci tablic JSON.
6+
7+> **Note:** TJSONDataSet jest zawarty we Free Pascalu, ale nie jest widoczny w palecie komponentów Lazarusa.
8+
9+### Przykład
10+
11+1. Utwórz nowy projekt aplikacji
12+2. Umieść siatkę DB na formularzu (DBGrid1)
13+3. Umieść DataSource w formularzu (DataSource1)
14+4. Połącz DBGrid1.Datasource z DataSource1
15+5. Utwórz zbiór danych JSON za pomocą kodu
16+
17+``` pascal
18+unit Unit1;
19+
20+{$mode objfpc}{$H+}
21+
22+interface
23+
24+uses
25+ Classes, SysUtils, Forms, Controls, Graphics, Dialogs, DBCtrls, DBGrids, DB,
26+ fpjson, fpjsondataset;
27+
28+type
29+
30+ TForm1 = class(TForm)
31+ DataSource1: TDataSource;
32+ DBGrid1: TDBGrid;
33+ procedure FormCreate(Sender: TObject);
34+ private
35+ JSONDataSet: TJSONDataSet;
36+ end;
37+
38+var
39+ Form1: TForm1;
40+
41+const
42+ // to są przykładowe dane JSON użyte w demo
43+ JSON_STRING = '['
44+ +'{"Author ID":"409-56-7008","Last Name":"Bennet","First Name":"Abraham","Active": False},'
45+ +'{"Author ID":"213-46-8915","Last Name":"Green","First Name":"Marjorie","Active": True}'
46+ +']';
47+
48+implementation
49+
50+{$R *.lfm}
51+
52+procedure TForm1.FormCreate(Sender: TObject);
53+var
54+ data: TJSONArray;
55+begin
56+ // przeanalizuj ciąg JSON
57+ data := GetJSON(JSON_STRING) as TJSONArray;
58+ // utwórz nowy zestaw TJSONDataSet
59+ JSONDataSet := TJSONDataSet.Create(Self);
60+ // musisz ręcznie utworzyć FieldDefs
61+ // ftString wymaga określonej długości
62+ JSONDataSet.FieldDefs.Add('Author ID', ftString, 11, True);
63+ JSONDataSet.FieldDefs.Add('Last Name', ftString, 40);
64+ JSONDataSet.FieldDefs.Add('First Name', ftString, 20);
65+ JSONDataSet.FieldDefs.Add('Active', ftBoolean);
66+ // ustaw OwnsData na True, a dane JSON zostaną zniszczone, gdy zestaw danych zostanie zniszczony
67+ JSONDataSet.OwnsData := True;
68+ // dane JSON to tablica obiektów
69+ JSONDataSet.RowType := rtJSONObject;
70+ // przypisz dane JSON do zbioru danych
71+ JSONDataSet.Rows := data;
72+ // aktywuj zbiór danych
73+ JSONDataSet.Active := True;
74+ // przypisz zbiór danych do źródła danych
75+ DataSource1.DataSet := JSONDataSet;
76+end;
77+
78+end.
79+
80+```
81+
82+---
83+*From the Free Pascal wiki, page "fpjsondataset/pl", as it stood on 2022-10-04 after a change by Slawek, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
84+Category: Databases
85+Category: FCL

Back to history