Watch, Follow, &
Connect with Us

Embarcadero Blogs

Latest Posts

RAD Studio Case Study - Spikes Security

With RAD Studio, Spikes’ developers can now write from a single code base that it can leverage against all platforms. As a result, they can release product to market faster than any of their competitors.

posted @ Fri, 19 Dec 2014 08:00:00 +0000 by Tim Del Chiaro

VCL Style Enhancements since XE2

Since introducing VCL application styling in XE2, we have added a list of enhancements to VCL styles. In this post, I am going to highlight some of the key enhancements we have made to VCL styles over the last several product releases. All the features listed below are part of RAD Studio XE7.


The TControl.StyleElements property allows you to adjust the style on each control.

Style Hook Technology

A style hook is a class that provides custom message handling for your custom control and enables the customization of menus such Main Menu, Popup and System Menu. If you have a custom control that needs special visual processing, you can create a style hook class that processes messages by inheriting from Vcl.Themes.TStyleHook.
You can use the Vcl.Themes.TStyleManager class to load, register, and select styles or to get, register, and unregister a style engine.

For example, we added a hook class for popup menus:
TCustomStyleEngine.RegisterSysStyleHook(’#32768′, TSysPopupStyleHook);

Menu Styling including Popup Menus

All the VCL styles have been extended to support TMainMenu, TPopupMenu and System Menu styling.

TMediaPlayer Styling

The VCL styles included with XE7 and the premium VCL styles (part of our bonus pack) have been updated to include matching styling for the VCL TMediaPlayer controls. This means that the play, pause and stop controls now have the same theme as the rest of the styled VCL application.

New Styles

We have added many new styles since first introducing VCL styles in XE2. This includes Windows 8 Modern UI styles, new light and dark styles and also touch friendly styles such as the TabletDark style for running your VCL apps on Windows based tablets like the Samsung Slate and Microsoft Surface Pro 3. We also have a set of premium styles available as part of our bonus pack offering.

posted @ Thu, 18 Dec 2014 16:30:39 +0000 by sarinadupont

How to Connect your Applications to your Data

This is a video replay from the DataU online conference. An Application Programming Interface (API) brings your own applications closer to your critical business data, allowing you to access and control your business glossaries, terms and model data quickly and easily. Using an API can connect your models with your business applications, so that you can align system data with business-critical data.

Click here to watch 15 more videos from the DataU series.


Torquil Harkness has spent the last 15 years serving customers in various support and management roles and understands how important the customer viewpoint is. For the last year he has been a documentation writer for Embarcadero Technologies, specializing in the ER/Studio family, enjoying the opportunity to create documentation with a customer focus.

posted @ Wed, 17 Dec 2014 22:29:00 +0000 by Tim DelChiaro

Cloud Databases - A Primer

Ever since the era of Cloud Computing featuring SaaS(Software as a Service) pioneered by Salesforce, Databases have not been left behind.

Databases in the Cloud or Cloud Databases are being used synonymously.

Cloud Database as defined by Wikipedia is

"A cloud database is a database that typically runs on a cloud computing platform, such as Amazon EC2, GoGrid, Salesforce, Rackspace, and Microsoft Azure. There are two common deployment models: users can run databases on the cloud independently, using a virtual machine image, or they can purchase access to a database service, maintained by a cloud database provider. Of the databases available on the cloud, some are SQL-based and some use a NoSQL data model."

Enterprises today are looking at cost effective and lower management costs to manage their database environments.

Cloud Databases can help leverage the same.

You may setup Databases within your corporate environment in a private cloud using Virtual Machines


and if you plan to use a public access,you may use DaaS - Database as a Service.

[Source: Microsoft]

One of the most cloud database environments I have personally had a positive experience is with Microsoft Azure.

Setting up SQL Server Databases have never been easier.

In upcoming posts, we shall explore how to setup a SQL Server VM in the Microsoft Azure Cloud.

Explore some of the tools you can use to benefit connecting to SQL Server Databases in the Cloud.

posted @ Wed, 17 Dec 2014 21:32:15 +0000 by Anil Mahadev

Enhancing the SQL Editing capabilities in ER/Studio

ER/Studio includes a basic ISQL editor, which is ok, but if you want to have feature rich SQL IDE to help write robust SQL then you can choose to integrate with Rapid SQL.

To change the SQL IDE change the path in Tools | Options | Tools within ER/Studio and point it to Rapid SQL:

Now any time either of the application wizards generate any SQL code (i.e. compare and merge, generate database), the code will launch in Rapid SQL.

Find out more about Rapid SQL here:

posted @ Wed, 17 Dec 2014 12:06:07 +0000 by mohammad

What's New in FireMonkey using Object Pascal

This session takes a look at some of the new developments in the FireMonkey framework for multi-device development.

This is a video replay from the CodeRage 9 online developer conference.

posted @ Wed, 17 Dec 2014 07:30:00 +0000 by Tim Del Chiaro

"Modernize Your VCL App Today!" webinar recording and demos

It was fun to do the "Modernize Your VCL App Today!" webinar:-)

During the session I have promised to make the recording and demos source code available.

The recording is rather big (548MB) and can be downloaded from here and demos source code has been uploaded to the Embarcadero CodeCentral.

  • mastapp. Original Delphi 7 BDE demo project
  • MarineAdventures. Mastapp upgraded to Delphi XE7 with VCL styles and JumpList component
  • StylingDemo1. Demo illustrating working with "StyledElements" property for customizing styled VCL controls.
  • JumpListFiles. Demo of the new XE7 TJumpList component
  • MetroGrid1. Demo showing VCL Metropolis UI with user selectable VCL styles.
  • Ribbon. Demo project showing Ribbon UI.
  • ParallelTasksAndFutures. Standard Parallel Programming Library demo illustrating syntax for tasks and future
  • ParallelMandelTest. Mandelbrot fractal generation application with added support for parallel "for" loop
  • FireDACResource. Enterprise Mobility Services demo with FireDAC.

The session was logically divided into two parts. The first one was about using the latest XE7 technologies to modernize the application user interface, application logic and data access. The second one was on moving to multitier, scalable architectures like EMS and DataSnap.

posted @ Tue, 16 Dec 2014 13:24:05 +0000 by Pawel Glowacki

Анализ индексов, использование статистик и гистограмм при оптимизации запросов


Производительность систем БД настолько важная тема, что именно вопросы снижения времени отклика и повышение эффективности обслуживания пользователей являются сегодня двигателем инициатив большинства компаний по смене архитектуры и модернизации инфраструктур.

Чтобы соответствовать современным требованиям, компаниям приходится идти на значительные финансовые затраты для достижения необходимого уровня масштабирования, пытаясь получить выигрыш за счет более эффективного решения своих задач. 

На производительность информационных систем,  в конечном счете, влияет огромное количество различных факторов, начиная от изначальных архитектурных решений, способностей и возможностей используемых СУБД и аппаратного обеспечения, заканчивая состоянием собственно информационных ресурсов. 

Индексирование данных, работа с индексами - одна из фундаментальных основ работы любой базы данных. Правильное применение индексов может повысить производительность информационной системы или приложения в разы, а то и в десятки раз. Подавляющее число специалистов по работе с данными хорошо знакомы с различными правилами, технологиями и приемами применения разнообразных индексов в промышленных системах. Тем не менее, бывает очень тяжело достичь оптимального баланса, так как добившись улучшения работы за счет расширения набора индексов, скорее всего, можно получить потери производительности  при операциях модификации данных. 

Оптимизация и тонкая настройка производительности систем БД  требует расширенных знаний о хранимых данных. Прежде всего, качество проектирования архитектуры данных без учета этих знаний может сильно повлиять на производительность всей системы, на некорректное использование индексов встроенными оптимизаторами запросов, на возможности и стоимость масштабирования. Это касается не только широко распространенных "классических" реляционных СУБД, но и новейших классов нереляционных БД. Например, наличие достаточного пространства в оперативной памяти сервера для помещения наиболее часто используемых блоков индексов может резко улучшить производительность. И напротив, использование в качестве ключа партиционирования полей с неподходящим распределением может отрицательно повлиять на эффективность функционирования системы по мере добавления и модификации информации.

Физическая организация данных также сильно отличается для различных аппаратно-программных сред, а ее оптимальность меняется по ходу эксплуатации системы и зависит от актуальных внутренних характеристик и метрик хранимых данных. 

Никто, кроме "владельца" данных не может лучше знать все тонкости устройства, взаимодействия, использования и распределения значений информации. Поэтому, оптимизация и тонкая настройка запросов на сервере - это скорее, искусство, требующее колоссальных знаний, времени и опыта.

Как же быть, если результат нужен быстро, а достигнутый уровень "шедевра" может стать недостаточным на следующий день работы системы?


В каждой СУБД, какого бы типа она не была, обязательно имеются средства, автоматически ищущие и находящие практические решения на каждый момент выполнения запроса. Чаще всего, это внутренний оптимайзер, достаточно "интеллектуальный" для решения обычных рутинных задач. Он формирует планы выполнения каждого запроса или кода на SQL. Ведущие СУБД применяют оптимайзеры, которые разбирают код SQL, проводят его возможные логические преобразования, ищут решения на физическом уровне (и при этом опираются на имеющиеся статистики), оценивают стоимость каждого варианта и выбирают окончательный план по общей стоимости выполнения.

Чтобы повлиять на выбор плана оптимайзером, нужно очень много знаний: теоретические о технологиях, о БД, физических носителях, аппаратных средствах, свойствах данных, распределении зачений, частотах использования. Оптимайзер находит план исходя из внутренних данных. И надо понимать, почему, на основании какой части этой информации было принято конкретное решение.

Для успешной работы информационных систем администраторы БД  должны обеспечить сбор и обновление статистик по данным. В современных условиях, когда резко возросло количество различных БД на разного типа СУБД, каждому администратору необходимы простые и эффективные средства, расширяющие возможности инструментов СУБД.

Как с помощью решений компании Embarcadero можно упростить и сделать более эффективным процесс управления структурами индексов, сбора и поддержки статистик в акутальном состоянии, выяснения почему оптимайзер использует определенный план, а в случае необходимости, быстро найти альтернативные варианты оптимизации запроса на конкретной БД - рассказано на вебинаре "Анализ индексов, использование статистик и гистограмм при оптимизации запросов".  Большую часть вебинара составляет демонстрация решения этих задач в Embarcadero DBArtisan и DB Optimizer. На базе использования подробных статистик и метрик с помощью этих инструментов можно быстро найти оптимальный план, оптимизировать структуру и применение индексов в любой базе данных на платформах Oracle, MS SQL, Sybase и DB2.


posted @ Tue, 16 Dec 2014 08:43:55 +0000 by Andrew Sovtsov

Exploring Microsoft SQL Server System Databases

The Microsoft SQL Server System comprises of four key System Databases

  1. master
  2. model
  3. msdb and
  4. tempdb

The following table outlines the key points


System database


master Database

Records all the system-level information for an instance of SQL Server.

msdb Database

Is used by SQL Server Agent for scheduling alerts and jobs. 

model Database

Is used as the template for all databases created on the instance of SQL Server. Modifications made to the model database, such as database size, collation, recovery model, and other database options, are applied to any databases created afterward.

Resource Database

Is a read-only database that contains system objects that are included with SQL Server. System objects are physically persisted in the Resource database, but they logically appear in the sys schema of every database.

tempdb Database

Is a workspace for holding temporary objects or intermediate result sets.

[Source: MSDN]

For more information you can visit




posted @ Tue, 16 Dec 2014 07:15:06 +0000 by Anil Mahadev

Empower your Applications with Embarcadero Team Server APIs

The Team Server REST Application Programming Interface (API) allows one application to talk to another application directly and securely.

Team Server provides a way to connect your database tools to your data sources with a centralized glossary. You can define your business terms and other metadata, and your team can collaborate on the definitions.

The Team Server REST Application Programming Interface (API) allows one application to talk to another application directly and securely. You can align system data with business-critical data, and easily update the database models stored in Team Server’s Repository with the API feature, using GET, POST, PUT, and DELETE commands through the user-friendly interface.


Check out the video below to know how it works



Check out the Embarcadero Team Server API Home page for more information

For more information check out on the web at

To learn more about Embarcadero Team Server

posted @ Tue, 16 Dec 2014 07:13:18 +0000 by Anil Mahadev

Server Response from: BLOGS1