Skip to main content

Velox Data Format Reference

Summary

This document describes the database and file formats supported by the current velox source code. It is part of the internal Velox Product Knowledge Base (PKB), not end-user documentation.

The source code is authoritative. Where the source shows a format enum, class, engine, or UI but behaviour is incomplete or unclear, this document says so explicitly.

Source Basis

Primary source locations used for this reference:

  • Classes\Tools\vxTypes.pas - format enums, database connection type enum, file type enum, file encodings, output types, field type labels, module format enum.
  • Classes\vxFileDef.pas - shared file definition properties, defaults, file engine selection, MIME type mapping, XML/JSON schema path processing.
  • Classes\vxFileDefFlat.pas, Classes\vxFileDefXML.pas, Classes\vxFileDefEDI.pas, Classes\vxFileDefExcel.pas, Classes\vxFileDefJSON.pas - design-time file definition subclasses.
  • Classes\vxFileEngine.pas, Classes\vxFileEngineFlatFile.pas, Classes\vxFileEngineXML.pas, Classes\vxFileEngineEDI.pas, Classes\vxFileEngineExcel.pas, Classes\vxFileEngineJSON.pas - runtime file read/write engines.
  • Classes\vxFileCon.pas - file location, naming, pattern, audit/error/transport folder, stream, hash, and file lifecycle handling.
  • Classes\vxDBCon.pas, Classes\vxDBDef.pas, Classes\vxDataDef.pas, Classes\vxSQLConnection.pas, Classes\Tools\vxDBConfig.pas, Classes\Tools\vxSQLFormat.pas - database connections, data definitions, runtime SQL connection configuration, and date/time formatting.
  • Modified\ReportBuilder\daDBCDS.pas, Modified\ReportBuilder\daDBExpress.pas, Modified\ReportBuilder\daSQL.pas, Modified\ReportBuilder\ppDBPipe.pas - modified ReportBuilder dataviews and database pipeline behaviour used by Velox data definitions.
  • Classes\GUI\vxJSONSchemaOutliner.pas, Classes\Tools\vxJSON.pas, Classes\Tools\vxXML.pas, Classes\Tools\vxEncoding.pas, Classes\Tools\vxStream.pas, Classes\Tools\vxCommonString.pas - JSON, XML, encoding, stream, and BLOB helpers.
  • Classes\vxCon.pas, Classes\vxDBParams.pas - JSON-backed system connection configuration.
  • Classes\vxAPI.pas, Classes\Tools\vxAPIStream.pas, Classes\Service\vxManagerREST.pas - API request/response content streams and OpenAPI media type generation.
  • Forms\frmSetupDBCon.pas, Forms\frmSetupDBDef.pas, Forms\frmSetupFileCon.pas, Forms\frmSetupFileDef*.pas, Forms\frmCSVImporter.pas, Forms\frmXMLSchemaItemSelect.pas, Forms\frmDatabaseExplorer.pas - Designer UI for database and file formats.

Format Model

Velox has two central format abstractions:

  • TvxDBDef represents database data through ReportBuilder SQL dataviews.
  • TvxFileDef represents file data through a file type and a matching engine.

TvxFileType currently contains:

Enum valueDisplay textRuntime engineUser-facing status
fftFlatFileFlat FileTvxFlatFileEngineSupported. CSV is a delimited flat-file case, not a separate enum.
fftXMLFileXML FileTvxXMLFileEngineSupported.
fftEDIFileEDI FileTvxEDIFileEngineSupported.
fftExcelFileExcel FileTvxExcelFileEngineSupported.
fftJSONFileJSON FileTvxJSONFileEngineSupported.
fftExcelOLDConverted to fftExcelFile in TvxFileDef.Transfer and TvxFileDef.SetFileType.

No active TvxFileType exists for arbitrary binary files. Binary data is still supported internally through streams, BLOB fields, ReportBuilder templates, log data, API content streams, and transport file payloads.

Supported Format Matrix

FormatFirst-class file/database definitionMain classesMain schema modelMain UIMIME/content handling
DatabaseYes, through TvxDBDef and TvxDBCon.TvxDBCon, TvxDBDef, TvxDataDef, TdaSQLQueryDataView, TvxSQLConnection.ReportBuilder SQL dataviews, fields, criteria, links, primary/update fields, DB connection metadata.frmSetupDBCon, frmSetupDBDef, frmDatabaseExplorer.Not file MIME based. Date/time SQL formatting is connection-type aware.
Flat filesYes, through fftFlatFile.TvxFileDefFlat, TvxFileDef, TvxFlatFileEngine, TdaCDSQueryDataView.File dataviews with RecID, RecPos, fields, fixed/delimited settings, encodings.frmSetupFileDefFlat, frmCSVImporter.text/plain when not delimited.
CSVYes as delimited flat file; no separate enum.Same as flat files plus TfrmCSVImporter.Delimited file dataviews; delimiter defaults to comma character code 44.frmSetupFileDefFlat, frmCSVImporter; main UI caption includes "Flat File (ie CSV)".text/csv for delimited flat files except tab-delimited.
Tab-separated textYes as delimited flat file.TvxFlatFileEngine.Same as CSV with delimiter character code 9.frmCSVImporter can set delimiter to tab when pasted field names contain tabs.text/tab-separated-values.
XMLYes, through fftXMLFile.TvxFileDefXML, TvxXMLFileEngine, TdaXMLQueryDataView, TvxXMLEngine.XSD schema, schema root node, namespaces, dataview root paths, field XPath.frmSetupFileDefXML, frmXMLSchemaItemSelect.application/xml.
JSONYes, through fftJSONFile.TvxFileDefJSON, TvxJSONFileEngine, TdaJSONQueryDataView, TvxJSONSchemaOutliner.JSON schema/sample file path, dataview root dot/bracket paths, field dot paths, root type.frmSetupFileDefJSON.application/json.
EDIYes, through fftEDIFile.TvxFileDefEDI, TvxEDIFileEngine, TdaEDIQueryDataView.Segment records selected by dataview RecID; element/sub-element layout stored on fields/dataviews.frmSetupFileDefEDI.application/EDIFACT.
ExcelYes, through fftExcelFile.TvxFileDefExcel, TvxExcelFileEngine, TdaExcelDataView.Workbook sheets/ranges/cell field mapping and optional template.frmSetupFileDefExcel.application/vnd.ms-excel.
Binary/streamsNo standalone file definition enum found.TStream, TBlobField, TvxLogFile, TvxLogTransport, TvxAPIRequest, TvxAPIResponse, ReportBuilder templates.Internal BLOB/template/stream fields and binary SQL field types.Logs, transport log forms, report designer, API execution paths.Depends on wrapping format; arbitrary binary file MIME is not defined by TvxFileDef.MimeType.

Database

Purpose

Database support lets Velox read from and write to relational databases through reusable database connections and database definitions.

Database data is used by:

  • Maps as source or destination data.
  • Reports as report data.
  • SQL scripts and custom SQL flow actions.
  • Data definitions used by flows, APIs, transports, and scripts.
  • System/config/log/data databases used by the Velox runtime itself.

Supported Database Connections

TRegConType in Classes\Tools\vxTypes.pas defines the supported connection types:

EnumDisplay nameDriver configuration source
ctMSSQLMicrosoft SQL ServerClasses\Tools\vxDBConfig.pas uses Devart SQL Server and SQL Server provider variants such as msoledbsql, sqlncli, sqlncli10, and sqloledb.
ctOracleOracleUses DBX Oracle configuration and oci.dll.
ctMySQLMySQLUses Devart MySQL client, direct, or embedded modes depending on TvxMySQLVerType.
ctPostgreSQLPostgreSQLUses PostgreSQL DBX configuration.
ctDB2IBM DB2Uses DB2 DBX configuration and DB2 client libraries.
ctADOADOUses OLE DB Express style configuration; exact target depends on provider/database string.
ctODBCODBCUses Delphi ODBC driver configuration; exact target depends on DSN/database settings.

ADO and ODBC are generic connection mechanisms. The code does not enumerate every possible backend reachable through ADO or ODBC.

Schema

Database schema in Velox is not stored as raw DDL in the database definition. It is represented by:

  • TvxDBDef.DataModule, a TvxdaDataModule.
  • TdaSQLQueryDataView dataviews from modified ReportBuilder/dbExpress code.
  • TdaSQL objects containing selected tables, fields, criteria, order, joins, links, and manual/custom SQL state.
  • Primary key/update fields and custom ID field/value settings on TvxDBDef.
  • Linked TvxDBCon modules through TvxDBLink.

TvxDBDef.OpenData sets database connections, assigns autosearch values from the owning flow source item when present, and activates dataviews when reading. TvxDBDef.SaveData starts transactions only when master dataviews have data, clears linked fields, and saves master SQL dataviews.

Configuration

Important configuration:

  • TvxDBCon.ConnectionType
  • Hostname, Database, SQLAuthType, Username, encrypted Password
  • ProviderName, SearchADO, SearchODBC, OtherParams
  • SQLDialect, SQLType, alias flags, quote flags
  • MySQLVersion, SSLCert, SSLKey
  • connection pool sizing: MinConnections, MaxConnections
  • transaction controls: DisableTransactions, MaxTranPerUpdate, TransIsolationForWriting, TransIsolationForReading
  • SQL Server certificate flag: TrustCertificate
  • TvxDBDef.UpdateIDFields, CustomIDField, CustomIDValue

System connection configuration is also loaded from a JSON file in TvxConnection (Classes\vxCon.pas). The JSON contains Connections and Databases entries and assigns Config/Log/Data/Test databases by key.

Where Used

Source locations:

  • Classes\vxDBCon.pas
  • Classes\vxDBDef.pas
  • Classes\vxDataDef.pas
  • Classes\vxSQLConnection.pas
  • Classes\Tools\vxDBConfig.pas
  • Classes\Tools\vxSQLFormat.pas
  • Modified\ReportBuilder\daDBExpress.pas

Important forms:

  • Forms\frmSetupDBCon.pas
  • Forms\frmSetupDBDef.pas
  • Forms\frmDatabaseExplorer.pas

Important services:

  • Classes\Service\vxManagerScheduler.pas
  • Classes\Service\vxManagerMonitor.pas
  • Classes\Service\vxManagerREST.pas
  • Classes\Service\vxManagerTransportIn.pas
  • Classes\Service\vxManagerTransportOut.pas

Examples

Example database definition behaviour from code:

DB Connection: Microsoft SQL Server
DB Definition: one or more SQL dataviews
Flow action: Map reads DB definition as source
Runtime: OpenData activates SQL dataviews, Map executes, SaveData writes destination dataviews inside transaction where needed

Example system connection JSON shape inferred from TvxConnection.Load:

{
"Connections": [
{
"Key": "Default",
"DisplayName": "Production",
"ConfigNum": 1,
"Config": "ConfigDb",
"ConfigTest": "ConfigDbTest",
"Log": "LogDb",
"LogTest": "LogDbTest",
"Data": "DataDb",
"DataTest": "DataDbTest"
}
],
"Databases": [
{
"Key": "ConfigDb"
}
]
}

The exact Databases object properties are loaded into TvxDBParams; this document does not infer missing properties beyond the source.

Flat Files

Purpose

Flat files represent structured text files that are either delimited or fixed width. They are used for common integration payloads where records and fields are represented in lines of text.

Schema

Flat-file schema is represented by:

  • TvxFileDef.FileType = fftFlatFile
  • TvxFileDef.DataModule
  • TdaCDSQueryDataView dataviews
  • RecID, a record identifier used to select the dataview when reading records
  • RecPos, the output order for dataviews when writing records
  • field definitions on the dataview SQL object
  • optional master/detail dataview relationships
  • fixed-width field sizing through dataview field sizes

TvxFlatFileEngine reads each record, finds the target dataview from the first field/record ID, then loads fields from position 2 onward because ID/master ID fields are internal.

Configuration

Important TvxFileDef configuration:

  • Delimited
  • Delimiter
  • RecDelimiter
  • RecCustomDelimiter
  • QuoteStrings
  • QuoteChar
  • QuoteAnyDataType
  • ExcludedTop, ExcludedBottom
  • FileEncoding
  • WriteBOM
  • PrintHeaderRow
  • TrimStrings
  • AutoDetectRecordDelimiter
  • AutoDetectEncoding
  • AttemptOtherEncoding
  • IgnoreInvalidLines
  • IgnoreExtraFields
  • IgnoreTruncatedFieldData
  • IgnoreWarningInvalidMaskDTF
  • IgnoreNullRecords
  • IgnoreInvalidNumbers
  • IgnoreUndefinedRecords
  • EnableNullInData

Defaults from TvxFileDef.New:

PropertyDefault
DelimitedFalse
Delimiter44 (comma)
RecDelimiterflbCRLF
QuoteChar34 (double quote)
FileEncodingfeANSI
WriteBOMFalse
AutoDetectEncodingTrue
AttemptOtherEncodingTrue

Supported file encodings from TvxFileEncoding are ASCII, ANSI, UTF-8, UTF-16, and UTF-16 big endian.

Where Used

Source locations:

  • Classes\vxFileDef.pas
  • Classes\vxFileDefFlat.pas
  • Classes\vxFileEngineFlatFile.pas
  • Modified\ReportBuilder\daDBCDS.pas
  • Classes\vxFileCon.pas

Important forms:

  • Forms\frmSetupFileDefFlat.pas
  • Forms\frmSetupFileCon.pas
  • Forms\frmCSVImporter.pas

Runtime usage:

  • Flow source/destination data definitions.
  • Maps, reports, SQL/script actions, transports, and REST APIs through file definitions.
  • File monitor and transport managers through file connection paths and patterns.

Examples

Delimited flat-file example with record IDs:

HDR,10045,2026-07-05
LIN,10045,SKU-1,2
LIN,10045,SKU-2,1

In this pattern, HDR and LIN are examples of first-field values that can match dataview RecID values. The actual record IDs are configured in the file definition dataviews.

Fixed-width example:

HDR1004520260705
LIN10045SKU-1 0002

The code supports fixed-width processing when Delimited = False, but exact field widths come from configured dataview fields. This document does not infer a universal fixed-width layout.

CSV And Tab-Separated Files

Purpose

CSV is supported as a delimited flat-file configuration. There is no separate TvxFileType or TvxCSVFileEngine in the active source.

Schema

CSV schema uses the same schema model as flat files:

  • TvxFileDefFlat
  • TvxFlatFileEngine
  • TdaCDSQueryDataView
  • delimiter and quote settings
  • dataview field order

TvxFileDef.MimeType maps delimited flat files to:

  • text/tab-separated-values when Delimiter = 9
  • text/csv for other delimited flat files

Configuration

Important CSV-specific configuration:

  • Delimited = True
  • Delimiter = 44 for comma separated files
  • Delimiter = 9 for tab separated files
  • QuoteStrings
  • QuoteChar = 34 for double quotes by default
  • PrintHeaderRow for writing column headers

TfrmCSVImporter can collect field names, delimiter, and quote character. Its code detects pasted line breaks and tabs, and can prompt to convert line breaks to tabs or set the field delimiter to 9.

Where Used

Source locations:

  • Classes\vxFileEngineFlatFile.pas
  • Classes\vxFileDef.pas
  • Forms\frmCSVImporter.pas
  • Forms\frmMain.dfm contains a visible caption Flat File (ie CSV).

Examples

CSV example:

HDR,10045,2026-07-05
LIN,10045,SKU-1,2

Tab-separated example:

HDR 10045 2026-07-05
LIN 10045 SKU-1 2

The examples show possible payloads only. Field meanings and dataview names are configured per file definition.

XML

Purpose

XML file definitions read and write XML payloads using XSD-backed schema information, XML dataview root paths, and field XPath mappings.

Schema

XML schema support is represented by:

  • TvxFileDef.XSDSchema
  • SchemaLocation
  • TargetNameSpace
  • SchemaRootNodeIndex
  • SchemaRootNodeName
  • MultipleRootNodes
  • AbstractAssignments
  • AnyAssignments
  • ArrayAssignments
  • TdaXMLQueryDataView.RootNode
  • TdaXMLQueryDataView.RootNodeName
  • TdaField.XPath and XML field metadata in modified ReportBuilder code

TvxFileDef.LoadXSDSchemaDoc loads the XSD into an MSXML schema cache. If multiple root nodes exist, the setup UI can prompt for a root selection through Forms\frmXMLSchemaItemSelect.pas.

Configuration

Important XML configuration:

  • ValidateXML defaults to True
  • ResolveExternals defaults to True
  • AllowDTDReferences defaults to False
  • IncludeXMLProlog defaults to True
  • IncludeXSINamespace
  • IncludeXSDNamespace
  • NamespacesAsNeeded
  • UseXSINilForNulls
  • UseXSIType
  • UTF16Encoding
  • ForceAttributeNSPrefix
  • FixBadEncoding

Runtime behaviour:

  • TvxXMLFileEngine.LoadFromFile saves API request stream content to a file when present, loads the file connection path, optionally fixes bad ampersand encoding, validates XML when enabled, then transforms XML into dataviews.
  • TvxXMLFileEngine.SaveToFile transforms dataview rows into XML, supports single-file mode, writes output, copies API response streams when applicable, and validates in Finish.
  • TvxFileDef.CreateBlankXMLDocument can generate a blank XML document using selected schema elements and namespace settings.

Where Used

Source locations:

  • Classes\vxFileDefXML.pas
  • Classes\vxFileDef.pas
  • Classes\vxFileEngineXML.pas
  • Classes\vxXMLEngine.pas
  • Classes\Tools\vxXML.pas
  • Modified\ReportBuilder\daDBCDS.pas

Important forms:

  • Forms\frmSetupFileDefXML.pas
  • Forms\frmXMLSchemaItemSelect.pas

Examples

Example XML payload:

<?xml version="1.0" encoding="UTF-8"?>
<Order>
<OrderNumber>10045</OrderNumber>
<Line>
<Sku>SKU-1</Sku>
<Quantity>2</Quantity>
</Line>
</Order>

Actual element names, namespaces, root node, and paths come from the configured XSD and dataview fields.

JSON

Purpose

JSON file definitions read and write JSON payloads using JSON dataview root paths and field dot paths. JSON is also used elsewhere in Velox for system connection configuration, API/OpenAPI schema generation, HTTP/OAuth/Azure helpers, and script-accessible JSON objects.

Schema

JSON file definition schema is represented by:

  • TvxFileDef.JSONSchema
  • TvxFileDef.JSONRootType
  • TdaJSONQueryDataView.RootNodeDotPath
  • TdaJSONQueryDataView.RootNodeBracketPath
  • TdaJSONQueryDataView.RootNodeName
  • TdaJSONQueryDataView.JSONRootType
  • TdaField.DotPath

TvxJSONSchemaOutliner loads the configured JSON schema/sample file through TJSONText.CreateFromFile, builds a tree outline, identifies object/array/simple-array nodes, and uses the first array element when outlining arrays. The active source comments say the outliner is for loading a JSON instance rather than a formal JSON Schema in the current implementation.

Runtime JSON read/write is handled by TvxJSONFileEngine:

  • Read: parse a JSON stream with ParseJSONValueFromStream, save normalized ToJSON to file connection log data, then transform master/detail JSON dataviews to datasets.
  • Write: create TJSONObject or TJSONArray based on root type, transform dataview rows into JSON, write UTF-8 or UTF-16 output, optionally write a BOM, and copy the result to an API response stream.

No active runtime JSON Schema validation equivalent to XML validation was found in TvxJSONFileEngine.

Configuration

Important JSON configuration:

  • JSONSchema
  • JSONRootType
  • RootNodeDotPath
  • RootNodeBracketPath
  • HasDotName
  • UseXSINilForNulls, reused as JSON output-null control in TvxJSONFileEngine.TransformToJSON
  • UTF16Encoding
  • WriteBOM

Where Used

Source locations:

  • Classes\vxFileDefJSON.pas
  • Classes\vxFileDef.pas
  • Classes\vxFileEngineJSON.pas
  • Classes\Tools\vxJSON.pas
  • Classes\GUI\vxJSONSchemaOutliner.pas
  • Modified\ReportBuilder\daDBCDS.pas
  • Classes\vxCon.pas
  • Classes\vxAPI.pas

Important forms:

  • Forms\frmSetupFileDefJSON.pas

Examples

Object-root JSON example:

{
"order": {
"orderNumber": "10045",
"lines": [
{
"sku": "SKU-1",
"quantity": 2
}
]
}
}

Possible dataview path examples:

RootNodeDotPath: order.lines
Field DotPath: sku
Field DotPath: quantity

The path syntax above reflects RootNodeDotPath and TdaField.DotPath usage in the source. Actual configured paths are created in the Designer.

EDI

Purpose

EDI file definitions read and write segmented EDI-style text files using segment, element, sub-element, and escape delimiters.

Schema

EDI schema is represented by:

  • TvxFileDef.FileType = fftEDIFile
  • TdaEDIQueryDataView, derived from TdaCDSQueryDataView
  • dataview RecID, used as the segment identifier
  • field order and EDI element grouping metadata
  • TdaField.ElementName usage during writing

TvxEDIFileEngine inherits from the flat-file engine but overrides record parsing, dataview lookup, field loading, record delimiter detection, and writing.

Configuration

Important EDI configuration from TvxFileDef:

  • SegmentTerminator, default 39 (')
  • ElementDelimiter, default 43 (+)
  • SubElementDelimiter, default 58 (:)
  • EscapeChar, default 63 (?)
  • AutoDetectRecordDelimiter
  • shared flat-file flags such as TrimStrings, IgnoreExtraFields, IgnoreInvalidNumbers, and IgnoreTruncatedFieldData

Runtime behaviour:

  • If a file starts with UNA, TvxEDIFileEngine.DetectRecordDelimiter reads delimiter characters from that segment.
  • TvxEDIFileEngine.FindCurrentDataView requires an exact RecID match.
  • Writing escapes delimiter characters using the configured escape character.
  • Writing appends a final segment terminator if a stream is still open.

Where Used

Source locations:

  • Classes\vxFileDefEDI.pas
  • Classes\vxFileEngineEDI.pas
  • Classes\vxFileEngineFlatFile.pas
  • Modified\ReportBuilder\daDBCDS.pas

Important forms:

  • Forms\frmSetupFileDefEDI.pas

Examples

EDI-like example using the default delimiter characters:

UNA:+.? '
UNH+1+ORDERS:D:96A:UN'
BGM+220+10045'
LIN+1++SKU-1:IN'
QTY+21:2'

The code supports delimiter detection from UNA. It does not identify specific EDI standards or transaction sets beyond delimiter/segment processing in the inspected source.

Excel

Purpose

Excel file definitions read and write XLS/XLSX workbooks. Excel is a first-class TvxFileType even though it is not listed in every user prompt example.

Schema

Excel schema is represented by:

  • TvxFileDef.FileType = fftExcelFile
  • TdaExcelDataView
  • worksheet/range configuration
  • field cell mappings through modified ReportBuilder field metadata
  • optional workbook template

TvxExcelFileEngine uses the nExcel workbook API. It parses cell and range addresses through helpers such as ExtractXLSCellAddress and ExtractXLSRange.

Configuration

Important Excel configuration:

  • ExcelAutoDetectFormat, default True
  • ExcelFormat, default fefXLSX
  • ExcelPassword
  • ExcelTemplate
  • TdaExcelDataView.Worksheet
  • TdaExcelDataView.Range
  • KeepEmptyRows
  • EmptyRowsForEOF
  • EndValue

Runtime behaviour:

  • Reading opens the workbook, reads master TdaExcelDataView dataviews, and logs file data.
  • Writing can use an Excel template. If ExcelAutoDetectFormat is enabled, output format can be inferred from .xls or .xlsx file extensions.
  • Writing can protect the workbook if ExcelPassword is set.

Where Used

Source locations:

  • Classes\vxFileDefExcel.pas
  • Classes\vxFileEngineExcel.pas
  • Modified\ReportBuilder\daDBCDS.pas

Important forms:

  • Forms\frmSetupFileDefExcel.pas

Examples

Excel range examples accepted by the parser:

Sheet1!A1:F20
Sheet1!A*
{ParentDataView}Sheet1!A2:F20

The examples show range syntax supported by ExtractXLSRange; actual workbook layouts are configured per file definition.

Binary And Streams

Purpose

Binary support exists in Velox as infrastructure rather than as a top-level file definition type. It is used for module persistence, report templates, datamodule templates, log/transport payloads, API request/response streams, DB blob fields, and script-accessible stream helpers.

Schema

Binary/stream schema is source-specific:

  • TvxModule saves module templates to the MODULE database field through ReportBuilder template persistence.
  • TvxDataDef descendants store DATAMODULE for data module metadata.
  • TvxReport stores REPORTMODULE for report layouts.
  • TvxLogFile stores file log data and file hashes.
  • TvxLogTransport stores TAGDATA in a TMemoryStream and persists it as hex/BLOB data.
  • TppDBPipeline.GetFieldAsStream and SetFieldFromStream read/write TBlobField values as streams.
  • TvxAPIRequest.Content exposes request body as TStream; TvxAPIResponse exposes response content stream through the WebBroker response class.

TvxModuleFormatType contains fmtBinary, fmtASCII, and fmtXML, but normal TvxModule.CreateModuleTemplate sets ReportBuilder template Format to ftASCII. Report modules and ReportBuilder internals can still read/write template streams.

Configuration

No standalone "binary file definition" configuration was found. Binary-related behaviour is controlled indirectly by:

  • TvxFileCon.FileStream
  • TvxFileCon.FileData
  • log flags such as LogFileData, LogHTTPComms, and LogTransportComms
  • ReportBuilder template settings
  • API request/response content stream use
  • database field types such as ftBLOB, ftGraphic, ftTypedBinary, ftBytes, ftVarBytes, and ftOraBlob

Where Used

Source locations:

  • Classes\vxModule.pas
  • Classes\vxReport.pas
  • Classes\vxFileCon.pas
  • Classes\Tools\vxStream.pas
  • Classes\Tools\vxCommonString.pas
  • Classes\Tools\vxAPIStream.pas
  • Modified\ReportBuilder\ppDBPipe.pas
  • Modified\ReportBuilder\daDBExpress.pas
  • Classes\vxMap.pas
  • Classes\vxSQL.pas

Important forms:

  • Forms\frmLogs.pas
  • Forms\frmManageLogs.pas
  • Forms\frmManageTransportLogs.pas
  • Report designer forms through modified ReportBuilder sources.

Examples

Transport tag-data persistence:

TvxLogTransport.TagData -> TMemoryStream -> StreamToHex -> VX_LOG_TRANSPORT.TAGDATA

API file response path:

File engine writes output file -> CopyFileToResponseStream -> Response.ContentStream -> Response.ContentType from TvxFileDef.MimeType

Database BLOB field handling:

TppDBPipeline.GetFieldAsStream: TBlobField.SaveToStream
TppDBPipeline.SetFieldFromStream: TBlobField.LoadFromStream

There is no source-confirmed TvxFileDefBinary or fftBinaryFile.

Cross-Format Runtime Flow

The same data definitions are reused across maps, reports, flows, API endpoints, SQL/custom-script actions, and transports. The trigger type changes how the flow starts, not the underlying format model.

Important Classes

AreaClasses
File definitionsTvxFileDef, TvxFileDefFlat, TvxFileDefXML, TvxFileDefEDI, TvxFileDefExcel, TvxFileDefJSON
File enginesTvxFileEngine, TvxFlatFileEngine, TvxXMLFileEngine, TvxEDIFileEngine, TvxExcelFileEngine, TvxJSONFileEngine
File connectionsTvxFileCon
Database definitionsTvxDataDef, TvxDBDef, TvxDefItem, TvxDefDB, TvxDefFile, TvxDefManager
Database connectionsTvxDBCon, TvxDBLink, TvxSQLConnection, TvxDBParams, TvxConnection
DataviewsTdaSQLQueryDataView, TdaCDSQueryDataView, TdaXMLQueryDataView, TdaJSONQueryDataView, TdaEDIQueryDataView, TdaExcelDataView
Binary/streamsTStream, TMemoryStream, TBlobField, TvxAPIRequest, TvxAPIResponse, TvxLogFile, TvxLogTransport

Important Forms

FormFormat areaPurpose
Forms\frmSetupDBCon.pasDatabaseConfigure database connection details.
Forms\frmSetupDBDef.pasDatabaseConfigure database definitions/dataviews.
Forms\frmDatabaseExplorer.pasDatabaseExplore database objects/data.
Forms\frmSetupFileCon.pasFilesConfigure file paths, patterns, audit/error/transport folders, naming behaviour.
Forms\frmSetupFileDefFlat.pasFlat/CSVConfigure flat-file definition details.
Forms\frmCSVImporter.pasCSVImport field lists and delimiter/quote settings.
Forms\frmSetupFileDefXML.pasXMLConfigure XML schema, validation, namespaces, root node selection.
Forms\frmXMLSchemaItemSelect.pasXMLSelect schema root node when multiple roots are detected.
Forms\frmSetupFileDefJSON.pasJSONConfigure JSON schema/sample path and JSON file settings.
Forms\frmSetupFileDefEDI.pasEDIConfigure EDI file definition delimiters and dataviews.
Forms\frmSetupFileDefExcel.pasExcelConfigure Excel format, template/password, ranges, and dataviews.
Forms\frmLogs.pas, Forms\frmManageLogs.pas, Forms\frmManageTransportLogs.pasLogs/binary/streamsView log file data, transport log data, and payload-related log records.

Important Services

Service/managerFormat relationship
Classes\Service\vxManagerScheduler.pasStarts scheduled flows that open database/file definitions.
Classes\Service\vxManagerMonitor.pasStarts monitor flows when file patterns or watched sources produce work.
Classes\Service\vxManagerREST.pasStarts REST flows, passes request content streams to file definitions, and returns response streams with file MIME types.
Classes\Service\vxManagerTransportIn.pasRuns inbound transports that receive files/messages and hand them to file connections/definitions.
Classes\Service\vxManagerTransportOut.pasProcesses outbound transport log queue records and sends file payloads.
ConfigurationSourceNotes
File typeTvxFileDef.FileTypeSelects active file engine.
File connectionTvxFileConControls path, pattern, save path, audit/error/issue/duplicate/temp/transport folders, naming, file hash, current file.
File encodingTvxFileEncodingASCII, ANSI, UTF-8, UTF-16, UTF-16 big endian.
Database typeTRegConTypeSQL Server, Oracle, MySQL, PostgreSQL, IBM DB2, ADO, ODBC.
System connection JSONTvxConnection in Classes\vxCon.pasLoads Config/Log/Data/Test database assignments from JSON.
MIME typeTvxFileDef.MimeTypeUsed by API/OpenAPI paths and response content type.
API streamsTvxAPIRequest, TvxAPIResponseRequest/response content stream wrappers.

Unclear Or Not Implemented From Source

  • CSV has no separate TvxFileType; it is a delimited flat-file configuration.
  • Arbitrary binary files have no TvxFileType, TvxFileDefBinary, or dedicated binary file engine in the inspected source.
  • JSON schema/sample handling is present in setup/outliner code, but no active runtime JSON Schema validation equivalent to XML validation was found.
  • ADO and ODBC are supported connection mechanisms, but specific backend database/file capabilities depend on provider/DSN settings and are not enumerated in the Velox code.
  • TvxModuleFormatType includes fmtBinary, fmtASCII, and fmtXML, but normal module template creation sets ReportBuilder template format to ASCII in TvxModule.CreateModuleTemplate.