Anything is possible, the impossible just takes longer.

Dan Brown

Scope

The My Visual Database (MVDB) integrated development environment (IDE) is designed for creating portable desktop applications that run on the Windows operating system. The main advantage of MVDB is the optimization of the process of creating applications for working with databases. The presence of a database designer makes it easier to create a database structure. The form designer allows you to quickly create a user-friendly interface using the component palette. The built-in FastReport reporting system provides the ability to create high-quality reports with the ability to export to popular formats. And the ability to write scripts provides the ability to expand functionality by adding improved logic and using Delphi XE3 components.

The scope of MVDB is the automation of business processes, such as

  • accounting and management;
  • inventory control;
  • personnel accounting;
  • production planning and organization;
  • customer management (CRM systems).

MVDB can also be successfully used to create data collection and storage systems:

  • electronic libraries and catalogues;
  • reference and information systems;
  • expert systems;
  • testing systems.

This is possible thanks to the presence of components optimized for creating applications of the listed classes.

To create applications with advanced functionality or a non-standard user interface, MVDB has support for scripts that can be used to create various low-code applications, including those that work with multimedia information, graphics, operating system files, etc. But you must remember the limitations: a relatively small set of procedures and functions, a fixed composition of components.

DBMS used

DBMSDescription
SQLiteCompact embedded DBMS. SQLite stores the entire database in a single file, either local or network accessible at the OS level. It is possible to read data simultaneously by several applications. Writing to the database can only be done if no other requests are currently being served.
MySQLThe MySQL database management system is a solution for small and medium-sized applications. MySQL is used as a server that is accessed by clients over a local network or over the Internet.

Single-user and multi-user applications

To solve simple problems, single-user applications are used, which assume that one person works with the program. But, if it is necessary to organize the work of several users, including their simultaneous work, then additional measures will need to be taken to ensure multi-user work.

MVDB supports user and rights management, including when creating non-code applications.

Stored data

MVDB uses an internal data type, which corresponds to similar data types in the DBMS used, which allows you to quickly switch the project to another DBMS,

MVDB data typeDBMS data typeComment
TextTEXTString with no length limit.
IntegerINTEGERInteger in the range -263 .. 263-1 
RealREALFloating point number; 15-16 significant figures, range about -324 .. 308
MoneyREALReal number with additional display format setting
Yes/NoINTEGERBoolean value Two numeric values are stored: 1 – yes (true) 0 – no (false)
Date/TimeTEXTThe date is stored as a string of the format YYYY-MM-DD HH:MM:SS.SSS
<year>-<month>-<day> <hours>:<minutes>:<seconds>.<milliseconds>
DateTEXTStored as date/time, only the date is displayed and edited
TimeTEXTStored as date/time, only time is displayed and edited
ImageBLOB+TEXTTwo fields are created. You can store an image in two ways: inside the database or a link to a file on disk.
FileBLOB+TEXTTwo fields are created. You can store the file in the database itself or save a link to the file or folder on disk.
CounterINTEGERAn integer that is automatically incremented when a new entry is added.
Calculated fieldNot stored in the database. Used by MVDB mechanisms to retrieve data when building database queries.
LinkINTEGERProvides relational relationships between tables.

☝ There is a special data type – NULL, which means that there is no data in the field. Please note that NULL is not zero or the empty string, it is a special value that any operation on will result in NULL. It is like a “black hole” that can absorb any data.

📝 Although SQLite can store integer values up to 8 bytes in length, MVD uses a 4 byte integer type to store integers, which reduces the range to -231 .. 231-1  

Data storage structure

A database is a set of interconnected tables with data.

A table is a collection of related data stored in a structured form in a database. The table consists of vertical columns (columns) with a unique name and horizontal rows (records). The table has a name.

A column is also called a table field. Each field can store data of a specific type. Each field has a name.

A row is also called a record. Each row is uniquely identified by one or more unique values that its cells from a specific subset of columns take.

The subset of columns that uniquely identifies a row is called the primary key.

A cell is where a row and column intersect. The cell stores the field value for the selected record.

The table contains a certain number of columns, but can have any number of rows.

📝 All the above definitions apply to relational databases, which are used in MVDB. In each table, MVDB automatically creates an integer field named “ID” to store the primary key – a unique digital identifier that uniquely identifies a record in the table.

Methods for entering and displaying data

Data into the program can come from various sources: entered by the user using the keyboard, downloaded from files, downloaded from websites, or received from various devices connected to the computer.

Data is displayed to the user using visual components. Components connect to the database. The operating logic of the MVDB components is optimized for solving standard data processing tasks; only the correct configuration of the component properties is required.

📝 To change the operating logic of components, control scripts are used, which allow you to create low-code applications.

Component overview

A class is a template for creating objects that provides initial state values: initializing variable fields and implementing the behavior of functions or methods.

According to tradition, class names begin with a capital letter T.

A component is an independent module of a program’s source code intended for reuse. The component performs a specific task, for example, it can serve to display or enter data. Components are implemented through classes.

A visual component is the basis of non-code programming technology; it is used to create an application by dragging components from a palette onto a form with further setting of the component properties.

КомпонентКлассОписание
FormTAFormThe main element of the Windows OS interface; container for other elements
TableTdbStringGridExDisplay data in grid. The main component for displaying the contents of database tables. Can be used for data entry.
TreeTdbTreeViewDisplay data in the form of a hierarchical list.
ButtonTdbButtonPerform various actions: searching for data, opening a window, saving data, etc.
Label TdbLabelDisplaying static text information
EditTdbEditEntering and displaying text information
MemoTdbMemoInput and display of large text information.
Rich EditTdbRichEditEnter and display text information using formatting: color, style, font size and type, etc.
ComboboxTdbComboBoxSelect one value from the drop-down list. Used to enter data from the directory.
CheckboxTdbCheckBoxSelect and display one Boolean value (Yes/No)
Date and Time PickerTdbDateTimePickerSelecting and displaying date and/or time
CalendarTdbMonthCalendarSelect and display dates using the calendar.
ConterTdbEditCountDisplay counter data. When a new record is created, the counter value is automatically increased by one.
PanelTdbPanelContainer for other elements
GruopTdbGroupBoxContainer for other elements; displayed with a frame and group name
Page ControlTdbPageControlContainer for other elements; consists of several pages with bookmarks that have a title.
ImageTdbImageStatic image.
MapTdbMapComponent for using the Google Map service; display of the map and marks on it
Image in DatabaseTdbImageDatabaseInput (load from file) and display of graphic information (images)
File in DatabaseTdbFileToDatabaseInput (upload) of files of any format into the database
Визуальные компоненты

Component Properties

To provide the required functionality, it is necessary to configure the properties of the components used. Components for displaying data are connected to the database; to do this, you need to fill in only two properties: TableName and FieldName, selecting the table name and the field where the required data is stored from the drop-down list.

Some components use the Configuration Wizard to configure properties. For example, all the useful functionality of the Button component is configured using the Action property in a separate window.

Some settings that are rarely used are hidden in the “Additional” section.

☝ Typically, changes made in the component properties editor take effect immediately after they are entered. An exception is the Name property – in order to change the name of a component, after entering a new name, you must press the Enter key.

After a brief overview of the development environment’s capabilities, it’s time to move on to practice – creating your first application.

Leave a Reply

Your email address will not be published. Required fields are marked *