Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/miyako/4d-plugin-mdb
mdb-tools for 4D.
https://github.com/miyako/4d-plugin-mdb
4d-plugin mdbtools
Last synced: 6 days ago
JSON representation
mdb-tools for 4D.
- Host: GitHub
- URL: https://github.com/miyako/4d-plugin-mdb
- Owner: miyako
- License: mit
- Created: 2024-05-14T15:38:44.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-05-20T06:13:55.000Z (6 months ago)
- Last Synced: 2024-05-21T07:31:28.859Z (6 months ago)
- Topics: 4d-plugin, mdbtools
- Language: C
- Homepage: https://miyako.github.io/4d-plugin-mdb/
- Size: 14.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![version](https://img.shields.io/badge/version-20%2B-E23089)
![platform](https://img.shields.io/static/v1?label=platform&message=mac-intel%20|%20mac-arm&color=blue)
[![license](https://img.shields.io/github/license/miyako/4d-plugin-mdb)](LICENSE)
![downloads](https://img.shields.io/github/downloads/miyako/4d-plugin-mdb/total)# 4d-plugin-mdb
[mdb-tools](https://mdbtools.github.io) for 4D (Mac only).```4d
status:=mdb sql(path;sql)
```Parameter|Type|Description
------------|------------|----
path|Text|POSIX path
sql|Text|no `;` at the end. `[escape]` where necessary
status|Object|Properties of ``status``:
Parameter|Type|Description
------------|------------|----
success|Boolean|
errorMessage|Text|optional
values|Collection|all values are text```4d
status:=mdb export(path;table;output)
```Parameter|Type|Description
------------|------------|----
path|Text|POSIX path
table|Text|name
output|Text|POSIX path
status|Object|the generated file follows the `SQL EXPORT SELECTION` output format:
* large Blob goes to ./BLOBS/Blob0.BLOB
* large Picture goes to ./BLOBS/{name.extension}
* main SQL
* table/field names are escaped
* Date includes default time
* Null is `NULL`
* Boolean is `0` or `1`
* Text is single quoted; single quotes are prefixed by an extra single quote; `\r\t\n\"\\` are exported raw
* small Blobs & Pictures are exported as hex e.g. `X'01020304'````sql
INSERT INTO [Table_1] ( [Id] , [Field_2] , [Field_3] , [Field_4] , [Field_5] )
VALUES (1 , INFILE 'BLOBS/Blob0.BLOB' , '2024/05/17 00:00:00:00' , '''abcd', INFILE 'BLOBS/Pic0.tif'),
(2 , INFILE 'BLOBS/Blob1.BLOB' , '2024/05/17 00:00:00:00' , '''efgh', X'54435034080000000000');
```except, binary fields (`MDB_OLE` `MDB_BINARY` `MDB_REPID`) are always exported as hex.
Properties of ``status``:
Parameter|Type|Description
------------|------------|----
success|Boolean|
errorMessage|Text|optional```4d
status:=mdb tables(path)
```Parameter|Type|Description
------------|------------|----
path|Text|POSIX path
status|Object|Properties of ``status``:
Parameter|Type|Description
------------|------------|----
success|Boolean|
errorMessage|Text|optional
tables|Collection|Properties of ``table``:
Parameter|Type|Description
------------|------------|----
name|Text|
type|Text|system or user
description|Text|optional
fields|Collection|Properties of ``field``:
Parameter|Type|Description
------------|------------|----
name|Text|
type|Text|
description|Text|optional
autosequence|Boolean|optional
autogenerate|Boolean|optional
length|Number|optional
precision|Number|optional
scale|Number|optional
properties|Object|---
## DDL for 4D SQL
https://doc.4d.com/4Dv20R4/4D/20-R4/4D-SQL-engine-implementation.300-6778464.en.html
Access (mdb)|4D SQL||
------------|------------|----
MDB_BOOL|Boolean|Yes/No
MDB_BYTE|Int|
MDB_INT|Int|
MDB_LONGINT|Int|
MDB_MONEY|Real|Monetary data, stored with 4 decimal places of precision
MDB_FLOAT|Real|
MDB_DOUBLE|Real|
MDB_DATETIME|Timestamp|Date/Time (8 bytes) or Date/Time Extended (Encoded string of 42 bytes)
MDB_BINARY|Blob|Attachment
MDB_TEXT|Text|Short Text (formerly known as “Text”)
MDB_OLE|Blob|Pictures, graphs, or other ActiveX objects from another Windows-based application.
MDB_MEMO|Text|Long Text (formerly known as “Memo”
MDB_REPID|UUID|AutoNumber (16 bytes for ReplicationID)
MDB_NUMERIC|Real|
MDB_COMPLEX|Int|Large Number (Int64) is not supported. see `data.c` for details.
* `UNIQUE` `PRIMARY KEY` is deduced from index definition.