Gedemin TLB.IGedemin.Dataset2JSON
Материал из GedeminWiki
(Различия между версиями)
SYSDBA (обсуждение | вклад) (→Примеры использования) |
SYSDBA (обсуждение | вклад) |
||
Строка 7: | Строка 7: | ||
;InQ: Компонент TIBSQL, подготовленный для чтения результирующих данных. Т.е. после выполнения Execute. | ;InQ: Компонент TIBSQL, подготовленный для чтения результирующих данных. Т.е. после выполнения Execute. | ||
;OutS: Поток, куда будет записан результат. | ;OutS: Поток, куда будет записан результат. | ||
− | ;Fields: Имена полей для экспорта. Через запятую. Если передана пустая строка, то будут экспортированы все поля из результирующей выборки. | + | ;Fields: Имена полей для экспорта. Через запятую. Если передана пустая строка, то будут экспортированы все поля из результирующей выборки. Имена полей не чувствительны к регистру, поэтому их можно использовать если надо сменить регистр символов в результирующем JSON. Например, в базе данных поле имеет имя GOODNAME, а в результирующий JSON надо записать GoodName. Тогда перечисляем список полей в нужном регистре в параметре Fields. Здесь же можно переименовать поле. Для этого следует указать Имя_поля_в_выборке=Имя_поля_в_JSON. Например, в выборке поле называется GOODID, а в JSON оно должно записаться как Id, то указываем GOODID=Id. |
;SubObjects: | ;SubObjects: | ||
;DateTimeInMs: Даты и время записывать не в строковом представлении, а числом, в миллисекундах, в соответствии со стандартом JS. | ;DateTimeInMs: Даты и время записывать не в строковом представлении, а числом, в миллисекундах, в соответствии со стандартом JS. |
Версия 14:39, 18 февраля 2022
From Gedemin TLB.pas
procedure Dataset2JSON(const InQ: IgsIBSQL; const OutS: IgsStream; const Fields: WideString; DateTimeInMs: WordBool; const TZ: WideString; WithMs: WordBool; MakeArray: WordBool; const Name: WideString; Indent: Integer; UTF8: WordBool);
Unit: Gedemin TLB
Type: procedure
Visibility: public
Member Of: IGedemin
Описание
Конвертирует результат выполнения запроса в JSON объект.
Параметры
- InQ
- Компонент TIBSQL, подготовленный для чтения результирующих данных. Т.е. после выполнения Execute.
- OutS
- Поток, куда будет записан результат.
- Fields
- Имена полей для экспорта. Через запятую. Если передана пустая строка, то будут экспортированы все поля из результирующей выборки. Имена полей не чувствительны к регистру, поэтому их можно использовать если надо сменить регистр символов в результирующем JSON. Например, в базе данных поле имеет имя GOODNAME, а в результирующий JSON надо записать GoodName. Тогда перечисляем список полей в нужном регистре в параметре Fields. Здесь же можно переименовать поле. Для этого следует указать Имя_поля_в_выборке=Имя_поля_в_JSON. Например, в выборке поле называется GOODID, а в JSON оно должно записаться как Id, то указываем GOODID=Id.
- SubObjects
- DateTimeInMs
- Даты и время записывать не в строковом представлении, а числом, в миллисекундах, в соответствии со стандартом JS.
- TZ
- Часовой пояс. Сейчас не используется. Должна быть пустая строка.
- WithMs
- Записывать миллисекунды при сохранении даты и времени в строковом представлении.
- MakeArray
- Если True, результат будет оформлен как массив. Установите данный параметр в False, если конечный JSON будет формироваться как результат объединения нескольких вызовов Dataset2JSON.
- Name
- Имя JSON объекта (массива) с данными. Если не указано (пустая строка), то будет сформирован просто массив без имени.
- Indent
- Отступ в пробелах. Если передано 0, JSON не будет форматирован и будет занимать минимальный размер.
- UTF8
- Если True, то результирующие данные будут преобразованы в UTF8. Если False -- будут записаны в однобайтовой кодировке Win-1251.
Примеры использования
Sub ExportToJSON Const fmCreate = &HFFFF& Const FileName = "c:\temp\test.json" Dim FS, Creator, T T = WinAPI.GetTickCount Set Creator = New TCreator Dim q Set q = Creator.GetObject(nil, "TIBSQL", "") Set q.Transaction = gdcBaseManager.ReadTransaction q.SQL.Text = "SELECT id, name, phone, fax, zip, country, district, city, address FROM gd_contact" q.ExecQuery Set FS = Creator.GetObject(Array(FileName, fmCreate), "TFileStream", "") Call System.Dataset2JSON(q, FS, "", "", False, "", False, True, "name", 2, True) MsgBox "Time: " & (WinAPI.GetTickCount - T) & "ms" End Sub