Devart Blog

DAC Team

Fast and simple database application development and deployment to Linux in RAD Studio

Posted by on April 20th, 2017

The Devart company released UniDAC with support for Linux 64-bit platform. UniDAC makes application development and maintenance easier and simpler because the use of the Direct mode in a custom application does not require the installation of client libraries, additional drivers, etc. This helps to avoid the overhead when accessing a DBMS, hence increasing performance.

So, in this article, we will demonstrate the capability of UniDAC to establish a connection to various DBMSs in the Direct mode:

  • ASE
  • DBF
  • MySQL
  • Oracle
  • PostgreSQL
  • SQLite
  • SQL Azure
  • SQL Server

(more…)

How to retrieve data from Dynamics CRM to MS Access using ODBC

Posted by on March 6th, 2017

Custom relational management is very important once you run a business. It helps to improve marketing strategy, sales and customer service. Today there are many systems providing Cloud-based CRM services on the market. The main benefits of using these systems are scalability, costs, and integration with commonly used office applications (e.g. MS Excel, Access and others).

MS Dynamics is one of the most popular CRM platforms in the world. The system offers a wide range of CRM applications for any business. Using such services will be beneficial for manufacturing, wholesale, financial and IT areas.

As well as Dynamics CRM system, MS Access is a good choice for any business, by virtue of the fact that it can handle external data from various sources. It also provides a possibility to open, modify and update cloud-based databases. But what can connect Dynamics and Access when we need to retrieve data?

(more…)

Developing applications with Salesforce CRM integration in Delphi

Posted by on February 1st, 2017

Cloud-based CRM systems are becoming incredibly popular in these days. This trend is quite clear. The usage of cloud services does not require a deployment and costly specialized software domestic support, which ultimately reduces a company’s total expenses. Despite the flexibility and ease of use, it is often necessary to work directly with data stored in the cloud, without using the original Web interfaces or custom APIs. It can be any analytical studies, statistical data processing or creating certain forms of reporting documentation. In this case, a developer will find it more convenient to work with such data using familiar tools. The popular development tool – Embarcadero RAD Studio is no exception here. Various APIs and different access methods to Cloud CRM data can significantly complicate this process, as in most cases, they are not universal. Here comes ODBC technology to help, providing a standard interface to access any databases, including clouds.

UniDAC components allow working in Delphi with any ODBC driver. For this UniDAC includes a special component: TODBCUniProvider. Let’s see how to work with data stored in one of the most popular CRM systems – Salesforce. First, you need to install and configure any ODBC driver working with Salesforce. For example, Devart ODBC Driver for Salesforce. As an example, let’s create a small application that implements a master-detail connection between two standard Salesforce objects: Account and Opportunity. Account will be represented by master dataset and Opportunity by detail dataset. The AccountId field will be used for communication between the entities.

(more…)

How to import data to Excel using ODBC

Posted by on December 6th, 2016

In this article, we will discuss how to access data using ODBC driver in Microsoft Excel. We will examine in detail the data retrieving process.
Cloud technologies develop rapidly, more and more data is stored in the cloud. Microsoft provides a great number of tools for data management and for cloud-stored data in particular. Microsoft Excel is one of the most popular products for data management. However, it works locally on a user’s machine. Is there any chance to access data in the cloud? The answer is yes. Here ODBC comes into the action. Let’s see how to use ODBC driver for NetSuite as a connectivity solution between NetSuite ERP and MS Excel.
(more…)

Use VirtualDataSet to access objects list via TDataSet interface

Posted by on November 18th, 2016

TVirtualDataSet is a virtual dataset that can be used as an intermediate between data stored in an application and data-aware controls used in forms. TVirtualDataSet behaves the same way as any other TDataSet descendant and, therefore, it is compatible with all data-aware controls. However, it does not store data in memory. Work with TVirtualDataSet is implemented by means of events occurring during data exchange between an application and controls. As a result, you can choose a variety of entities as a data storage source: arrays, lists, records, XML files, etc.

(more…)

Installation & Configuration of Devart ODBC Driver for QuickBooks

Posted by on August 3rd, 2016

The article describes installation and configuration of Devart ODBC Driver for QuickBooks on Windows, as well as authorization and connection to a QuickBooks account, and provides a demo sample of retrieving QuickBooks account data using Microsoft SQL Server Management Studio.

(more…)

How to combine data from several sources using SQL and VirtualQuery

Posted by on July 28th, 2016

The VirtualQuery component allows to perform SQL queries to sources, that are not a database, but a TDataSet or any its descendant. It also allows to connect to several data sources at a time and work with them using SQL queries as with a single data source. Thus, work in heterogeneous environment is implemented, when execution results of queries to different sources can be retrieved in a single data set.

(more…)

Increasing SQLite Performance

Posted by on December 21st, 2015

One the major issues a developer encounters when using the SQLite DBMS in his applications is its performance issue.

Perhaps, a classic case everyone gets into when using SQLite for the first time is very slow execution of multiple INSERT/UPDATE/DELETE operations. Indeed, sequential executions of not even thousands, but hundreds of INSERTs into a table may take too long.
The origin of the issue lies in the specificity of using transactions in SQLite. SQLite starts a transaction automatically every time before any DML statement execution and commits it after execution. Accordingly, when executing multiple consequent statements, a new transaction will be started and committed for each statement.

The solution of this problem is quite simple — the block of DML statements may be enclosed into BEGIN … END operators block ( http://www.sqlite.org/lang_transaction.html ). In this case, each DML statement won’t be executed in a separate transaction, but a single transaction will be started before the whole block execution and committed after all modifications.

Such an approach increases SQLite data modification performance by times. See more details about it in the SQLite documentation ( http://www.sqlite.org/faq.html#q19 ).

However, this approach is not the only way to increase performance in SQLite. Parameters of the DBMS may also be configured using so-called PRAGMA ( http://www.sqlite.org/pragma.html ). The fact is that SQLite parameters are oriented not to high performance by default, but to maximum data safety and integrity. Modification of these parameters may increase performance, however, note, that the data corruption risks increase too.

Let’s analyze the impact to inserts performance by different PRAGMAs using LiteDAC. (more…)

Using Batch Updates in Delphi Data Access Components

Posted by on September 11th, 2015

Data amount processed by modern databases grows steadily. In this regard, there is an acute problem – database performance. Insert, Update and Delete operations have to be performed as fast as possible. Therefore Devart provides several solutions to speed up processing of huge amounts of data. So, for example, insertion of a large portion of data to a DB is supported in the Loader. Unfortunately, Loader allows to insert data only – it can’t be used for updating and deleting data.

The new version of Devart Delphi Data Access Components introduces the new mechanism for large data processing — Batch Operations. The point is that just one parametrized Modify SQL query is executed. The plurality of changes is due to the fact that parameters of such a query will be not single values, but a full array of values. Such approach increases the speed of data operations dramatically. Moreover, in contrast to using Loader, Batch operations can be used not only for insertion, but for modification and deletion as well.

(more…)

Disabling Direct Mode In LiteDAC and UniDAC

Posted by on August 7th, 2015

LiteDAC and UniDAC interact with SQLite in 2 approaches. The first approach is that an application uses functions of the linked SQLite library. For Windows OS it is sqlite3.dll, for Mac OS and iOS – libsqlite3.dylib, for Android – libsqlite.so. The second approach allows to connect to the database from the application directly, using so called Direct Mode. Direct Mode provides interaction with SQLite avoiding any external libraries linking. It is implemented by embedding the code of the SQLite library directly to the application. This approach allows to work with SQLite in cases, when using third-party libraries is impossible due to a number of reasons. For example, when developing applications for iOS or Mac OS, the Apple corporation prohibits deployment of any libraries along with the application.

However, there are situations, when it is preferably to use the first mode. Thus, when developing applications for Android, there is no need to worry about SQLite client library presence, since it is included into this OS distribution. On the other hand, during project implementation, strict requirements may be imposed on the compiled application size. Such requirements are especially relevant for mobile development. Therefore, it is highly desirable to have an opportunity to disable modules, that won’t be used in the application, before compilation. LiteDAC and UniDAC allow to exclude the code of the SQLite client library, that implements Direct Mode, from a ready application. As a result, the size of the developed application may be decreased. (more…)