Telegram forums: https://t.me/steema_bi
A simple class to implement in-memory database complex structures, to provide:
-
Ultra fast speed (every column or field is a simple array)
-
Big-data ready, billions of cells supported
-
Multi-platform (Windows, Mac OSX, Android, iOS, Linux and more), for VCL, Firemonkey, Delphi and C++
-
Automatic visualizations of complex structures (charts, grids, optional TeeGrid and more)
-
SQL-like high-speed queries and summaries by code or "select" scripts
-
Multi-dimensional Excel-like pivot tables, with drag & drop editor
-
Geographic database (Countries, States, Provinces...) to automatically create summary geo queries, TeeChart world maps, and statistics
-
Transparent remote web server fast data access (compressed binary streams of raw arrays)
-
Automatic relationships between columns (master-detail), indexes and foreign keys
-
Import data from files, databases, objects (ORM), AI in one or few lines of code
-
Export data (to csv,pdf,html,xml,excel,json), comparisons and manipulations
-
Supported development environments:
- Embarcadero RAD Studio Athens 12.3, and from Studio XE4 and up (Delphi and C++)
- Lazarus / FreePascal
uses BI.DataItem, BI.CSV, BI.Db, BI.Xml, BI.Json, BI.AI;
var Data1 : TDataItem;
Data1 := TBICSV.FromFile( 'mydata.csv' ); // also From TStrings, String etc
// other importing methods:
Data1 := TBIDB.From( SQLConnection1 ); // loads all tables in one line of code
Data1 := TBIJson.From ...
Data1 := TBIXML.From ... // import different formats
// import from Artificial Intelligence AI agents, like Google Gemini:
Data1 := TBIAI.From('Give me the list of the highest 10 mountains by elevation in csv format, just the list');
// from arrays, TCollection, custom Records (via RTTI):
Data1 : TTypeProvider<TCustomer>.Create(Self, MyArrayOfCustomers).Data;
// import from components with automatic detection:
Data1 := TComponentImporter.From(Self, Memo1.Lines);
Data1 := TComponentImporter.From(Self, DataSource1);
// importing from any URL, automatic detection of content format:
Data1 := TBIURLSource.From('https://www.mysite.com/get/mydata?param=123');
// queries, including group by, sort, expressions, having, sub-select, distinct, date operators etc
Data1 := TBISQL.From( Data2, 'sum(Amount) where (Customer=123) and (Product<456) group by Country, Year');
Data1 := TBISQL.From( Data2, 'ProductName, UnitPrice where UnitPrice > select Average(UnitPrice)');
Data1 := TBISQL.From( Movies, 'top 100 offset 15000 year, length');
// visualizing
BIGrid1.Data := Data1;
BIChart1.Data := Data1;
BIGrid2.Data := Data1['Products']; // sub-tables
// importing data from a standard TeeChart Series:
Data1 := TChartData.From(Series1);
http://steema.cat:15015/?data=SQLite_demo&format=.jpg
The following features have been marked as obsolete / incompatible, and moved to a separate folder outside the product:
-
Machine-learning (native data pass to R Language and Python Scikit)
-
Interactive Dashboards rendered to screen (desktop and mobile) and HTML Web pages