This manual explains how to use our Database Connections Library in your atvise projects. This library consists of a set of resources, displays, object types, scripts and global parameters that, after being imported into your atvise project, will allow you to connect atvise to any SQL database through ODBC, and use those connections to easily configure query scripts that run automatically in the background.
Use cases can be:
- Inserting industrial data into SQL databases depending on data changes or time intervals.
- Updating existing SQL tables with real time industrial data.
- Querying existing data from SQL tables and writing their values in process variables based on time intervals.
- Querying SQL table content from a screen and displaying the result into a universal HTML table without writing code.
TABLE OF CONTENTS
- 1. System requirements
- 2. Importing the library into an atvise project
- 3. Configuring database connections
- 4. SQL Table display
- 5. Configuring database query scripts
- 5.1 Common parameters
- 5.2 Query return object (ret.queryResult)
- 5.3 atvise to database scripts
- 5.3.1 Insert 1 node simple (value, timestamp)
- 5.3.2 Insert 1 node (name, value, status, timestamp)
- 5.3.3 Insert 2 nodes by column
- 5.3.4 Insert 3 nodes by column
- 5.3.5 Insert 4 nodes by column
- 5.3.6 Insert X nodes by column
- 5.3.7 Insert X nodes by block
- 5.3.8 Update 1 node simple (value, timestamp)
- 5.3.9 Update 1 node (name, value, status, timestamp)
- 5.4 Database to atvise scripts
- 6 Best practices to use the predefined scripts
- 7 Warnings
1. System requirements
1.1. Basic requirements
This library needs the next requirements to work:
- An atvise server v3.11.0 or higher
- Windows 10, Windows Server 2019 or higher
- ODBC driver for the database you want to use must be previously configured in the operating system
1.2. Supported databases
This database connection library has been tested with the following types of databases:
- MySQL 8.0.33
- PostgreSQL 17.4
- MariaDB 11.7.2
- SQL Server 2022 Express Edition
1.3. Configuring ODBC data sources
1.3.1. Download and install the official ODBC driver for Windows according to your desired SQL database, check the database provider information to find it. The driver should be installed in the server where atvise is running on:
1.3.2. Configure all the database connection parameters and authentication needed by the driver in the specific DSN configuration dialogs. Also select the database or schema you want atvise to use:
1.3.3. Check if the settings are correct with the test option before continuing.
2. Importing the library into an atvise project
Warning: Before importing the library, make sure you have made a backup copy of your nodes.db project.
Importing this library may overwrite some of your existing elements (nodes, object types, index.htm...) if they have the same name and path. If you have a custom index.htm file under PROJECT/Resources, please contact support to avoid overwriting it.
Read carefully the point 2.2 of this guide.
Our recommendation is to first run some tests with this library in a secure environment like an empty project.
2.1 XML importation
You will receive a link with our repository of libraries that you can import into atvise projects. Once you get that link, browse inside Vester Community folder / atvise Configurations / atvise Database Connections Library / XML.
Download the "atviseDBConnectionsLibrary.xml”.
Open your atvise Builder, go to builder / Import (absolute) from XML... and browse to select atviseDBConnectionsLibrary.xml.
2.2 Imported elements
These are the elements that have been imported. Avoid modifying them without proper knowledge, as they are all internally related:
- DBConnection: Under "Object Types". It is the main component of the library. Each database connection will be an instance of this object type, which contains all necessary scripts to make the data queries between atvise and the database.
- DB_Management display: Under Library / PROJECT / Object Displays. General display to configure the database connections.
- Internal displays: Folder with internal displays under Library / PROJECT / Object Displays / Internal.
- MultiSelectDropdown: Under Library / PROJECT / Resources. It is a free, imported and customized .css and .js library for a multi-select dropdown object used in the Dynamic Table object display, designed to select the available columns of a selected SQL table.
- Index.htm: Under Library / PROJECT / Resources. Warning! It is highly probable that you already have a custom Index.htm. Importing this library will overwrite it if it has the same name. Contact support if you have a custom index.htm.
- DB_Queries: Folder with two global lists for testing, under Global Parameters.
- DBConnection: Folder with two global lists to configure unlimited node addresses for the query scripts between atvise and the databases.
- DB_DeleteBtnColor: Under Global Parameters. It's a red color only used in the button display for deleting a database connection from the visualization.
- webMI Method Scripts: Server scripts called from the DB_Management and the Internal displays:
- DB_AvailableColumns
- DB_AvailableTables
- DB_ConnectionInstances
- DB_CreatedDBsBrowse
- DB_DeleteConnectionInstance
- DB_ODBCBrowse
- DB_Query
- DB_UpdateRow
3. Configuring database connections
3.1. Using DB_Management display
3.1.1 Create a display in your visualization navigation. It is recommended to protect that display in the Access Control, so only selected groups can configure database connections. Drag and drop the DB_Management display in that new display:
3.1.2 Open the visualization and navigate to your new display. If you configured the system DSNs with the ODBC drivers of your databases, they would automatically appear in the left table of the display:
3.1.3 To configure a new database connection click the "Add" button. A pop-up window will appear to set some parameters and options. Depending on the type of database, it will be needed to enter the username and password for the connection. Name and driver description will be automatically fulfilled according to the configured system DSN (see section 1.3).
- Enable: Checkbox to enable/disable the database connection.
- Debug: Checkbox to activate/deactivate logging any error, warning of information related to the database connection in the atvise server logs.
- Monitoring: Checkbox to activate/deactivate a watchdog that monitors the database connection status each 30 seconds. The monitoring function will automatically try to restore the connection if lost, otherwise it will be needed to disable and enable it manually.
3.1.4 After adding your database connections, their basic information will be displayed in the right table. The status column shows the status of the database connection at the moment of the display load.
The column is not subscribed to the status node, so it does not consume CCDs. However, if you want to use this display to check the status at certain moment, reload the display to force a new reading.
There is another display to monitor each real-time database connection. It will be explained in section 3.2.
3.1.5 Each individual configured connection can be edited or deleted from this management display. By clicking in the Edit/Delete button, the connection pop up display opens up with the current parameters and a delete button.
Warning: Be careful when deleting a connection if you have transactions or query scripts configured because they will stop working and may affect your application (see section 5).
3.2 DB connections in the atvise Builder
When creating a database connection using the DB Management display, an instance of the object type "DBConnection" will automatically be created under OBJECTS / DBConnections path:
Here is a description of each folder, node, property, script and display under the database connection instance. This is only a description of each one of them, it is not necessary to modify them if you create the database connections using the DB_Management display:
Instance Name (object type instance): As the instance is automatically created from the DB_Management display, it automatically takes the name of the system DSN.
1. Control (folder): Folder that contains the database connection resources (nodes, scripts, properties).
Parameters (folder): Nodes parameter values to build the database connection.
- Description (property): Driver description of the system DSN.
- Version (property): Version of the library.
- ConnectionString (node): Specifies the connection string to the ODBC server according to the database connection parameters. These are examples of connection string formats for different types of databases:
Type of database | Connection String example |
MySQL 8.0.33 | DSN=MySQL; |
PostgreSQL 17.4 | DSN=PostgreSQL; |
MariaDB 11.7.2 | DSN=MariaDB; |
SQL Server 2022 Express Edition | DSN=SQLServer;Uid=atvise;Pwd=atvise; |
See http://www.connectionstrings.com/ as reference.
- Name (node): Its value should be unique and the same as the system DSN used in the ODBC driver configuration (it can be different to the database connection instance name).
- Debug (node): Allows to enable/disable general database connection log messages.
- EnableAtStartup (node): Allows to enable/disable the Startup script.
- EnableMonitoring (node): Allows to enable/disable the Monitoring script.
- Password (node): Password of the user that is trying to connect to the database. Only applies if the system DSN has not embedded the authentication.
- Username (node): Username of the user that is trying to connect to the database. Only applies if the system DSN has not embedded the authentication.
1.2 Connect (script): Main script to stablish the database connection.
1.3 Enable (node): Node to enable/disable the database connection.
1.4 Monitoring (script): Watchdog script to continuously monitor the connection status. It is triggered by its parameter "interval" (default: 30 seconds).
1.5 Startup (script): Triggers a database connection enable when the atvise server is started if the EnableAtStartup node value is true.
1.6 Status (node): Shows the real-time status of the database connection. Values:
0 = Connection disabled
1 = Connection ok
2 = Communication error
3 = Processing (connecting / disconnecting)
2. Queries (folder): contains examples of query scripts adapted to the database connection object type instance.
2.1 atviseToDB (folder): contains examples of data query scripts from the atvise address space nodes to the database. These scripts and its parameters will be described in section 5.
2.2 DBToatvise (folder): contains examples of data query scripts from the database to the atvise address space nodes. These scripts and its parameters will be described in section 5.
2.3 Main (folder): contains the database operation main scripts.
- INSERT (script): Main script for all SQL inserts of this database connection.
- SELECT (script): Main script for all SQL selects of this database connection.
- UPDATE (script): Main script for all SQL updates of this database connection.
Warning: If any modification is required in these scripts, please contact support, as the entire library operation depends on them.
2.4 QueryLogObj (node): Auxiliar string node that can be used to show the value of a database query log.
2.5 QueryResultObj (node): Auxiliar string node that can be used to write the result of a database query script.
2.6 TriggerNodeObj (node): Auxiliar boolean node that can be used as trigger for a query script.
3. MainDisplay: Display to monitor and control the database connection. It includes a real-time subscription to the Status node.
3.3 DB connection display
Each configured database connections is an instance of the Object Type DBConnection. Drag and drop the instance to a display in order to monitor and control the database connection in real-time:
4. SQL Table display
4.1 Building simple queries from the web client
From the DB_Management display, you can access a new display from the "SQL Table" button. The usage of this display is to facilitate the user to make simple SQL queries and watch the result in a table in the same display. That table data can be exported as any other table in atvise (Historylist or Alarmlist):
- First combobox is to select a configured database connection.
- Second combobox is to select a table from the first combobox selected database.
- Multiselect dropdown is to select all, one or some columns from the second combobox selected database.
- In/out value component is to type strings to set WHERE clauses in the SQL query. WHERE clauses syntaxis will depend on the selected SQL database. If empty, no WHERE clause will be sent to the query. To use it, just type the condition without "WHERE". E.g.: column1 > 9 AND index < 10.
4.2 Updating rows
Each row can be updated from this display whenever the database engine allows it. Whether the database engine allows "writing" or not, it is a good practice to configure the atvise Access Control to set the user groups that can access this display, because it includes the "update" button in each row.
The update button allows the user to send an "UPDATE" sentence to que selected database with the data displayed in its same row. Once the update button is pressed, a confirmation pop up is displayed. If you press "cancel", nothing happens. If you press "confirm", the parameters for the UPDATE query are sent to the atvise server who will send the UPDATE query to the database. Right after that, the atvise table display is refreshed and it will show the new data.
5. Configuring database query scripts
The communication that the library carries out with the database is done through scripts that execute transactions or queries. Here are explained some examples for different types of data structures, which can be useful as is or adapted to the specific needs of a project. Using the scripts requires minimal parameterization, which is explained below. If more advanced customization is needed, it is also possible to modify their JavaScript code. Contact support team if needed.
5.1 Common parameters
triggerNode, triggerInterval
Some scripts can be triggered by any value or status change of an atvise object or cyclically according to an interval. Use these parameters to configure how the query needs to be triggered.
dbConnection
Every query script needs to be linked to a database connection. Use this parameter to select the nodeId of the database connection instance Example: AGENT.OBJECTS.MySQL.
table, nameColumn, valueColumn, statusColumn, timestampColumn
These are the names of the table and columns from the database. The queries evaluate these names to write or read data from the database, so they must match to avoid errors. (Example: name, value, status, timestamp, etc.)
query
This is the final query format that will be composed by the script before sending to the database system.
The queries use variable interpolation like ${table} to simplify the setup, so that everything inside ${...} is evaluated and the result is inserted into the final string. If the query does not fit the way you need to communicate with your database, it can be modified.
nodeTimestamp
Some queries can write the timestamp of a node in the database or the timestamp in which the query was executed. Use this parameter to select the preferred option: true = stores last sourceTime of the node, false = stores query timestamp.
queryResultObj
Select queries can be used to receive data from a database and write it into atvise objects. Use this parameter to assign the result of the query to your object configuring the atvise node id.
Example: AGENT.OBJECTS.MySQL.Queries.LastQueryResultObj.
queryLogObj
Use this parameter if a log of the query needs to be stored in a string object for debugging reasons.
Example: AGENT.OBJECTS.MySQL.Queries.QueryLogObj
rowLimit
This parameter defines the maximum number of rows returned by the query. A value of 0 means there will be no limit. Be careful when setting this parameter to avoid affecting the performance of the application.
debug
Use this parameter to activate the debug in the atvise server-side log for a specific operation or query script.
5.2 Query return object (ret.queryResult)
Each query script receives information from the main database operation scripts in a returned object after its execution:
let ret = call("INSERT", {query: "myQuery", queryCaller: “myQueryScript”, debug: true});
The returned object has the following properties:
ret.queryLog (String): Log message with the execution result of the command sent to the database. The log message indicates what DSN connection was used, the operation executed and the result. For example: “SQLServer | DB INSERT: error, connection not ok”
“atvise_db_module | DB SELECT: ready, rows fetched 100”
ret.queryResult (String): returns an array of objects containing the table data according to the SELECT statement:
For example:
[ { "status": "Good", "timestamp": "2025-07-01 09:05:47.013000", "value": "10.234" }, { "status": "Good", "timestamp": "2025-07-01 09:05:41.036000", "value": "7.663" }, { "status": "Good", "timestamp": "2025-07-01 09:05:37.080000", "value": "9.879" } ]
ret.queryColumn (String): returns an array of objects containing the columns data:
[{digits (Integer), label (String), name (String), size (Integer), table (String), type (Integer), typename (String)} . {…}]
For example:
{ "digits": 0, "label": "value", "name": "value", "size": 7, "table": "atvise_1node", "type": 7, "typename": "float" }
ret.queryStatus (String): “0” = not executed, “1” = query ready, “2” = query error
5.3 atvise to database scripts
The following are examples of query scripts to read data from atvise address space nodes and write into the database.
5.3.1 Insert 1 node simple (value, timestamp)
This script can be used to insert an atvise node value and timestamp into a database table with a structure like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerNode: nodeId of the object that triggers the query by value/status change (Example: AGENT.OBJECTS.Float)
triggerInterval: interval time to trigger the query cyclically when not using a node value/status change (Example: Interval (daily) = 00:00:30)
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
For more information, see section Common parameters or the Parameters help comments of the script.
5.3.2 Insert 1 node (name, value, status, timestamp)
This script can be used to insert an atvise node name, value, status and timestamp into a database table with a structure like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerNode: nodeId of the object that triggers the query by value/status change (Example: AGENT.OBJECTS.Float)
triggerInterval: interval time to trigger the query cyclically when not using a node value/status change (Example: Interval (daily) = 00:00:30)
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
nodeName: name of the object variable to be written in the database (Example: Temperature)
For more information, see section Common parameters or the Parameters help comments of the script.
5.3.3 Insert 2 nodes by column
This script can be used to insert 2 atvise node values by columns and a timestamp into a database table with a structure like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerNode: nodeId of the object that triggers the query by value/status change (Example: AGENT.OBJECTS.Float)
triggerInterval: interval time to trigger the query cyclically when not using a node value/status change (Example: Interval (daily) = 00:00:10)
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
node1: nodeId of the first Object whose value is stored in the database (Example: AGENT.OBJECTS.Float1)
node2: nodeId of the second Object whose value is stored in the database (Example: AGENT.OBJECTS.Float2)
For more information, see section Common parameters or the Parameters help comments of the script.
5.3.4 Insert 3 nodes by column
Similar to the previous query script but with 3 nodes.
5.3.5 Insert 4 nodes by column
Similar to the previous query script but with 4 nodes.
5.3.6 Insert X nodes by column
This script can be used to insert any number of atvise node values by columns and a timestamp into a database table row with a structure like the following. The nodes are read from a global list of the project and the database table a structure like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerNode: nodeId of the object that triggers the query by value/status change (Example: AGENT.OBJECTS.Float)
triggerInterval: interval time to trigger the query cyclically when not using a node value/status change (Example: Interval (daily) = 00:00:10)
globalist: nodeId of a Global List containing the block of nodes to insert [key, address, nameColumnX] (Example: SYSTEM.GLOBALS.GlobalList)
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
For more information, see section Common parameters or the Parameters help comments of the script.
5.3.7 Insert X nodes by block
This script can be used to insert any number of atvise nodes as a block of rows with node name, value, status and timestamp into a database table. The nodes are read from a global list of the project and the database table has a structure like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerNode: nodeId of the object that triggers the query by value/status change (Example: AGENT.OBJECTS.Float)
triggerInterval: interval time to trigger the query cyclically when not using a node value/status change (Example: Interval (daily) = 00:00:10)
globalist: nodeId of a Global List containing the block of nodes to insert [key, address, nameColumnX] (Example: SYSTEM.GLOBALS.GlobalList)
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
For more information, see section Common parameters or the Parameters help comments of the script.
5.3.8 Update 1 node simple (value, timestamp)
This script can be used to update an already existing row of a database table from an atvise node value and timestamp. The structure is like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerNode: nodeId of the object that triggers the query by value/status change (Example: AGENT.OBJECTS.Float)
triggerInterval: interval time to trigger the query cyclically when not using a node value/status change (Example: Interval (daily) = 00:00:30)
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
Clause: This parameter helps to specify conditions or constraints to filter or modify the behaviour of the query, defining what row data should be manipulated. For example, in the case of a MySQL database, the clause to modify the first row of a table could be ‘ORDER BY id ASC LIMIT 1’.
For more information, see section Common parameters or the Parameters help comments of the script.
5.3.9 Update 1 node (name, value, status, timestamp)
This script can be used to update an already existing row of a database table from an atvise node name, value, status and timestamp.
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerNode: nodeId of the object that triggers the query by value/status change (Example: AGENT.OBJECTS.Float)
triggerInterval: interval time to trigger the query cyclically when not using a node value/status change (Example: Interval (daily) = 00:00:30)
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
nodeName: name of the object variable to be written in the database (Example: Temperature)
Clause: This parameter helps to specify conditions or constraints to filter or modify the behaviour of the query, defining what row data should be manipulated. For example, in the case of a MySQL database, the clause to modify the first row of a table could be ‘ORDER BY id ASC LIMIT 1’.
For more information, see section Common parameters or the Parameters help comments of the script.
5.4 Database to atvise scripts
The following are examples of query scripts to read data from the database and write into atvise address space nodes.
5.4.1 Select 1 node simple (value, timestamp)
This script can be used to select a row from a database table and write the value and timestamp into an atvise node. The database structure is like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerInterval: interval time to trigger the query cyclically (Example: Interval (daily) = 00:00:10)
queryResultObj: nodeId of the object in which the query script writes the query result (Example: AGENT.OBJECTS.Float1). It is used to assign the query result to the destination node.
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
Clause: This parameter helps to specify conditions or constraints to filter or modify the behaviour of the query, defining what row data should be retrieved. For example, in the case of a MySQL database, the clause to read the first row of a table could be ‘ORDER BY id ASC LIMIT 1’.
For more information, see section Common parameters or the Parameters help comments of the script.
5.4.2 Select 1 node (name, value, status, timestamp)
This script can be used to select a row from a database table and write the value, status and timestamp into an atvise node. The database structure is like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerInterval: interval time to trigger the query cyclically (Example: Interval (daily) = 00:00:10)
queryResultObj: nodeId of the object in which the query script writes the query result (Example: AGENT.OBJECTS.Float1). It is used to assign the query result to the destination node.
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
Clause: This parameter helps to specify conditions or constraints to filter or modify the behaviour of the query, defining what row data should be retrieved. For example, in the case of a MySQL database, the clause to read the first row of a table could be ‘ORDER BY id ASC LIMIT 1’.
For more information, see section Common parameters or the Parameters help comments of the script.
5.4.3 Select 2 nodes by column
This script can be used to select a row from a database table and write 2 values and timestamp into atvise nodes. The database structure is like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerInterval: interval time to trigger the query cyclically (Example: Interval (daily) = 00:00:10)
queryResultObjX: nodeId of the objects in which the query script writes the query result (Example: AGENT.OBJECTS.Float1). It is used to assign the query result to the destination nodes.
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
Clause: This parameter helps to specify conditions or constraints to filter or modify the behaviour of the query, defining what row data should be retrieved. For example, in the case of a MySQL database, the clause to read the first row of a table could be ‘ORDER BY id ASC LIMIT 1’.
For more information, see section Common parameters or the Parameters help comments of the script.
5.4.4 Select 3 nodes by column
Similar to the previous query script but with 3 nodes.
5.4.5 Select 4 nodes by column
Similar to the previous query script but with 4 nodes.
5.4.6 Select X nodes by block
This script can be used to select any number of rows as a block with node name, value, status and timestamp from a database table and write the data into atvise nodes. The list of nodes is read from a global list of the project and the database table has a structure like this:
It mainly needs the following parameters (drag and drop from the project navigator or edit manually):
triggerInterval: interval time to trigger the query cyclically (Example: Interval (daily) = 00:00:10)
globalist: nodeId of a Global List containing the block of nodes to insert [key, address, nameColumnX] (Example: SYSTEM.GLOBALS.GlobalList)
dbConnection: nodeId of the database connection instance (Example: AGENT.OBJECTS.MySQL)
Clause: This parameter helps to specify conditions or constraints to filter or modify the behaviour of the query, defining what rows of data should be retrieved. For example, in the case of a MySQL database, the clause to read the first 4 rows of a table could be ‘ORDER BY id ASC LIMIT 4’.
For more information, see section Common parameters or the Parameters help comments of the script.
6 Best practices to use the predefined scripts
The query scripts do not have to be placed exclusively in the database communication instance folders called Queries.atviseToDB or Queries.DBToatvise. The following are examples of different ways of organizing.
6.1 Single node queries
The query scripts can be created/copied under a node or object in atvise project tree. This can be an effective way to keep the different query scripts organized in our project, making it easier to know which query is related to which node. See this example:
In this particular case, the trigger of the query script can be set relatively (R) instead of absolutely by doing this:
With this configuration, the script will be triggered by any change in its parent node.
6.2 Grouping query scripts
Query scripts can also be grouped into folders, for example, when configuring communications with multiple databases at the same time, or by groups of logical or functional objects. This can be another way to keep the scripts that handle communications in our project well organized. See this example:
7 Warnings
- Importing this library may overwrite some important components, such as the index.htm file in PROJECT / Resources path. Make a whole nodes.db backup before importing the library into an existing project.
- The library is a software component distributed "as-is". If any modifications are required, make them with proper knowledge and at your own risk. Contact support if needed, as some components are interdependent.
- Do not create multiple instances of database connections using the same DSN (Data Source Name). Doing so may cause unexpected behaviour, conflicts, or resource issues.
- Do not delete active connections or running query scripts. Removing a database connection that is currently in use or has query scripts executing may cause runtime errors or incomplete transactions.
- By default, atvise does not modify the database structure. It does not automatically create tables, drop columns, or perform any structural changes. It is the developer’s responsibility to properly maintain the database and ensure it is compatible with the application.
- Consider the number of query scripts and server performance. An excessive number of scripts running simultaneously may impact server behaviour. Monitor your system load and script frequency to avoid potential overloads or slowdowns.
- This library has only been tested and supported on Windows. Behavior under other operating systems is not guaranteed.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article