Мощный встроенный доступ к базе данных ставит Delphi впереди WPF и Electron
Как работают Delphi, WPF .NET Framework и Electron по сравнению друг с другом и как лучше всего провести объективное сравнение? Embarcadero заказал технический документ для исследования различий между Delphi, WPF .NET Framework и Electron для создания настольных приложений Windows. Тестовое приложение — клон калькулятора Windows 10 — было воссоздано в каждой структуре тремя волонтерами Delphi Most Valuable Professionals (MVP), одним экспертом-фрилансером WPF-разработчиком и одним экспертом-фрилансером Electron. В этом сообщении блога мы собираемся изучить метрику доступа к базе данных, которая является частью сравнения гибкости, используемого в техническом документе. Сама сборка калькулятора не использует базу данных, поэтому оценки здесь, как правило, относятся к самим фреймворкам.
Содержание
Доступ к базе данных
Содержит ли фреймворк собственные библиотеки, поддерживающие доступ к базе данных? Сохранение данных имеет решающее значение для многих приложений и должно быть удобным для пользователя и интегрированным с любой хорошей средой разработки.
Основное преимущество Delphi перед WPF и Electron заключается в том, что его структура FMX может развертывать одну часть исходного кода в виде двоичного кода на любой основной настольной или мобильной платформе, максимально увеличивая доступ бизнеса к клиентам и сводя к минимуму дублирование кода и проблемы с обслуживанием / обновлением. Он может поддерживать проекты любого размера, от логических контроллеров для промышленной автоматизации до управления запасами по всему миру, и разрабатываться для каждого уровня — от серверной части с тяжелыми базами данных до клиентской части приложения с графическим интерфейсом. Наконец, стандартные библиотеки Delphi обеспечивают легкий доступ почти ко всем доступным типам баз данных и позволяют разработчикам получать доступ к функциям операционной системы на каждой платформе, а также взаимодействовать с устройствами ввода-вывода и аппаратными датчиками.
WPF с .NET Framework напрямую нацелен на компьютеры Windows. Платформа в первую очередь ориентирована на клиентские настольные приложения, но может включать бизнес-логику на C # для функций среднего или внутреннего уровня и доступа к ADO . NET Entity Framework для баз данных. WPF может получить доступ к функциям операционной системы Windows и устройствам ввода-вывода через библиотеки .NET, но с управляемым кодом после компиляции, а не с собственным кодом.
Electron — это платформа с открытым исходным кодом, нацеленная на три основные настольные операционные системы через базу браузера Chromium. Он ориентирован на клиентские приложения, обычно веб-ориентированные, но использует node.js для промежуточных и внутренних служб. Electron предоставляет аппаратный доступ из своего процесса node.js и может получить доступ к некоторым, но не всем функциям операционной системы через библиотеки node.js.
Давайте посмотрим на каждый фреймворк.
Delphi
Delphi поставляется с несколькими библиотеками баз данных, которые подключаются практически ко всем типам баз данных на рынке. Доступ к базе данных, запросы и отображение данных легко интегрируются с помощью компонентов, доступных в бесплатной версии Community Edition и на первом уровне коммерческой лицензии. В то время как Delphi и WPF получили одинаковые оценки в техническом документе, Delphi поставляется с более интегрированной цепочкой инструментов и большим количеством поддерживаемых баз данных.
FireDAC — это универсальная библиотека доступа к данным для разработки приложений для нескольких устройств, подключенных к корпоративным базам данных. Благодаря своей мощной универсальной архитектуре FireDAC обеспечивает собственный высокоскоростной прямой доступ из Delphi и C ++ Builder к InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix, DataSnap и многое другое, включая базу данных NoSQL MongoDB.
FireDAC — это мощный, но простой в использовании уровень доступа, который поддерживает, абстрагирует и упрощает доступ к данным, предоставляя все функции, необходимые для создания реальных приложений с высокой нагрузкой. FireDAC предоставляет общий API для доступа к различным серверным компонентам базы данных, не отказываясь от доступа к уникальным функциям, специфичным для базы данных, и без ущерба для производительности. Используйте FireDAC в приложениях Android, iOS, Windows и Mac OS X, которые вы разрабатываете для ПК, планшетов и смартфонов.
Ниже вы можете найти список всех баз данных FireDAC, поддерживаемых RAD Studio. Список включает минимальную и максимальную версию, поддерживаемую каждым выпуском RAD Studio.
Database | FireDAC driver ID | Seattle (10.0) | Berlin (10.1) | Tokyo (10.2) | Rio (10.3) | Sydney (10.4) |
---|---|---|---|---|---|---|
SAP Advantage Database | ADS | v 8.0 — 10.1 | v 8.0- 12.0 | v 8.0 — 12.0 | v 8.0 — 12.0 | v 8.0 — 12.0 |
SAP SQL Anywhere | ASA | v 5.0 — 12.0 | v 5.0 — 16.0 | v 5.0 — 16.0 | v 5.0 — 16.0 | v 5.0 — 16.0 |
IBM DB2 Server | DB2 | v 8.2 — 9.7 | v 8.![]() |
v 8.2 — 9.7 | v 8.2 — 9.7 | v 8.2 — 9.7 |
Firebird | FB | v 1.5 — 2.5 | v 1.5 — 2.5 | v 1.5 — 2.5 | v 1.5 — 3.0 | v 1.5 — 3.0 |
InterBase | IB | v 6.0 — XE7 | v 6.0 — XE7 | v 6.0 — 2017 | v 6.0 — 2017 | v 6.0 — 2020 |
IBM Informix | Infx | v 8.0 — 11.7 | v 8.0 — 11.7 | v 8.0 — 12.1 | v 8.0 — 12.1 | v 8.0 — 12.1 |
MongoDB | Mongo | v 3.0 | v 3.0 | v 3.0 | v 3.0 | v 3.0 |
Microsoft Access | MSAcc | 95 — 2010 | 95 — 2010 | 95 — 2015 | 95 — 2015 | 95 — 2015 |
Microsoft SQL Server | MSSQL | 2000 — 2008 | 2000 — 2008 | 2000 — 2016 | 2000 — 2017 | 2000 — 2017 |
MySQL Server | MySQL | v 3.![]() |
v 3.21 — 5.6 | v 3.21 — 5.7 | v 3.21 — 6.x | v 3.21 — 8.0 |
MariaDB | MySQL | n/a | n/a | v 5.5 — 10.1 | v 5.5 — 10.3 | v 5.5 — 10.3 |
Oracle Server | Ora | v 8.0 — 11.2 | v 8.0 — 12.1 | v 8.0 — 12.1 | v 8.0 — 12.1 | v 8.0 — 12.1 |
PostgreSQL | PG | v 7.4 — 9.1 | v 7.4 — 9.5 | v 7.4 — 9.5 | v 7.4 — 10.0 | v 7.4 — 12.0 |
PostgreSQL Enterprise Server | PG | v 9.2 | v 9.2 | v 9.2 | v 9.2 | v 9.2 |
SQLite | SQLite | v 3.0 — 3.8.7 | v 3.0 — 3.9.2 | v 3.0 — 3.9.2 | v 3.0 — 3.23.1 | v 3.![]() |
Teradata | TData | v 13.0 — 15.0 | v 13.0 — 15.0 | v 13.0 — 15.0 | v 13.0 — 15.0 | v 13.0 — 15.0 |
Generic ODBC sources | ODBC | v 2.0 — 3.0 | v 2.0 — 3.8 | v 2.0 — 3.8 | v 2.0 — 3.8 | v 2.0 — 3.8 |
Дополнительные подключения к базе данных, протестированные с использованием драйвера FireDAC ODBC Bridge:
Database | Version |
---|---|
SAP Adaptive Server Enterprise | v 15.0 |
IBM DB2 AS/400 | n/a |
QuickBooks | v 16.0 |
InterSystems Cache | 2014 |
Pervasive SQL | v 10.0 |
DBase | n/a |
Excel | n/a |
MicroFocus Cobol | n/a |
Ingres Database | n/a |
SAP MaxDB | n/a |
Clarion | n/a |
SolidDB | n/a |
Unify SQLBase | n/a |
Помимо FireDAC, Delphi и RAD Studio имеют обширную стороннюю экосистему, которая предоставляет множество различных коммерческих решений для доступа к базам данных с открытым исходным кодом. Вы даже можете получить доступ к .NET-библиотекам из Delphi и C ++ с помощью сторонних решений, таких как CrossTalk от ATOZED Software .
WPF .NET Framework
WPF поставляется с доступом к библиотекам баз данных, включая ADO .NET Entity Framework, которые позволяют подключаться к базе данных, запросы и записи через код C #. Согласно Microsoft .NET Framework поставляется только со следующими поставщиками данных ( источник ):
- Поставщик данных .NET Framework для SQL Server
- Поставщик данных .NET Framework для OLE DB
- Поставщик данных .NET Framework для ODBC
- Поставщик данных .NET Framework для Oracle
- Поставщик данных .NET Framework для SQL Server Compact 4.0
Платформа WPF .NET Framework получила высокую оценку в техническом описании доступа к базе данных из-за поддержки ODBC. Другие поставщики данных доступны у третьих лиц. Однако требуется время, чтобы отследить каждую необходимую библиотеку базы данных, установить ее и поддерживать в актуальном состоянии.
Электрон
При первой установке Electron не включает в себя собственную библиотеку доступа к базе данных. Поэтому это не единичный пакет, содержащий все функции, необходимые для доступа к базам данных. Он может получать доступ к базам данных через NodeJS, и доступны несколько библиотек с открытым исходным кодом для использования серверных и бессерверных баз данных, включая реализации JavaScript. Однако требуется время, чтобы отследить каждую необходимую библиотеку базы данных, установить ее и поддерживать в актуальном состоянии.
Вот пример усилий, необходимых для подключения к базе данных Oracle из NodeJS для использования в Electron:
https://docs.oracle.com/en/cloud/paas/exadata-express-cloud/csdbp/connect-node-js.html
Пакеты подключения к базе данных также доступны через диспетчер пакетов, как показано здесь:
https://www.npmjs.com/package/mssql
У всех трех фреймворков есть хоть какой-то способ доступа к большинству баз данных. Однако Delphi и RAD Studio поставляются с большинством поддерживаемых баз данных из всех трех фреймворков. Кроме того, поскольку эти компоненты доступа к базе данных поставляются с Delphi, нет необходимости в дополнительном времени для отслеживания и поддержки сторонних библиотек. У Delphi действительно есть богатая экосистема сторонних компонентов доступа к базе данных, которые необязательно использовать. WPF .NET Framework — это устаревшая платформасогласно Microsoft и поставляется только с 5 поставщиками данных (хотя, честно говоря, вы можете получить доступ ко многим базам данных через ODBC). Electron не поставляется с какими-либо компонентами доступа к базе данных, но они легко доступны через экосистему NodeJS и требуют дополнительных усилий для поиска и поддержки, что делает решение хрупким. В целом, Delphi предоставляет более гибкий и интегрированный набор инструментов с большим количеством поддерживаемых баз данных по сравнению с двумя другими фреймворками.
Изучите все показатели в техническом документе «Обнаружение лучшей среды разработки с помощью сравнительного анализа»:
Загрузите официальный документ Free Delphi vs. WPF vs. Electron для настольных ПК с Windows
Дополнительное чтение…
Delphi обеспечивает долгосрочную осуществимость над постоянно меняющейся электронной и устаревшей WPF .NET Framework
Молниеносное развертывание магазина приложений в Delphi Trounces WPF и Electron
Визуальное проектирование приложений в Delphi обеспечивает до 5-кратного увеличения производительности по сравнению с WPF и Electron
Delphi предлагает значительный прирост производительности по сравнению с WPF и Electron
Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial Upgrade Today
Free Delphi Community Edition Free C++Builder Community Edition
Manage consent
Программирование баз данных в Delphi
Главная / Программирование / Программирование баз данных в Delphi / Тест 2
Упражнение 1:
Номер 1
Что такое Модуль Данных?
Ответ:
 (1) механизм доступа к данным.  
 (2) компонент для подключения к базе данных. 
 (3) не визуальный контейнер для размещения на нем не визуальных компонентов доступа к данным. 
 (4) синоним базы данных 
Номер 2
Что можно разместить в Модуле Данных?
Ответ:
 (1) компоненты отображения данных (DBGrid
,
DBEdit
, DBMemo
и т.п.).   (2) компоненты — наборы данных (TTable
/ADOTable
, TQuery
/ADOQuery
, TStoredProc
/ADOStoredProc
). 
 (3) компоненты подключения к данным (TDataBase
, ADOConnection
и т. п.). 
 (4) файл или файлы с базой данных. 
 (5) глобальные переменные, функции и процедуры, которые должны быть видимы в других модулях. 
 (6) любые визуальные компоненты. 
Номер 3
Что нельзя разместить в Модуле Данных?
Ответ:
 (1) компоненты отображения данных (DBGrid, DBEdit, DBMemo
и т.п.). 
 (2) компоненты — наборы данных (TTable/ADOTable, TQuery/ADOQuery, TStoredProc/ADOStoredProc
). 
 (3) компоненты подключения к данным (TDataBase, ADOConnection
и т. п.). 
 (4) файл или файлы с базой данных. 
 (5) глобальные переменные, функции и процедуры, которые должны быть видимы в других модулях. 
 (6) любые визуальные компоненты. 
Номер 4
Выберите верные утверждения:
Ответ:
 (1) модуль данных имеет форму. 
 (2) модуль данных не имеет формы. 
 (3) модуль данных хранится в базе данных. 
 (4) модуль данных хранится в проекте, в файле *.pas. 
 (5) в модуль данных нельзя поместить визуальные компоненты. 
 (6) в модуль данных можно поместить некоторые визуальные компоненты. 
Номер 5
Выберите неверные утверждения:
Ответ:
 (1) модуль данных имеет форму.  
 (2) модуль данных не имеет формы. 
 (3) модуль данных хранится в базе данных. 
 (4) модуль данных хранится в проекте, в файле *.pas. 
 (5) в модуль данных нельзя поместить визуальные компоненты. 
 (6) в модуль данных можно поместить некоторые визуальные компоненты. 
Упражнение 2:
Номер 1
Для чего нужен компонент ADOConnection?
Ответ:
 (1) для получения набора данных из базы данных. 
 (2) это универсальный компонент, который может заменить ADOTable
и ADOQuery
. 
 (3) для обеспечения связи между компонентами наборов данных и базой данных.  
 (4) для отображения полученных данных. 
Номер 2
Выберите верные утверждения:
Ответ:
 (1) компонент ADOConnection
использует механизм доступа к данным BDE
. 
 (2) компонент ADOConnection
использует механизм доступа к данным, разработанный корпорацией Microsoft
. 
 (3) компонент ADOConnection
предназначен для обеспечения связи между компонентами наборов данных и базой данных. 
 (4) компонент ADOConnection
предназначен для получения набора данных из базы данных.  
 (5) компонент ADOConnection
может включать или отключать вывод запроса имени пользователя и пароля. 
 (6) компонент ADOConnection
не может включать или отключать вывод запроса имени пользователя и пароля. 
Номер 3
Выберите неверные утверждения:
Ответ:
 (1) компонент ADOConnection
использует механизм доступа к данным BDE. 
 (2) компонент ADOConnection
использует механизм доступа к данным, разработанный корпорацией Microsoft.  
 (3) компонент ADOConnection
предназначен для обеспечения связи между компонентами наборов данных и базой данных. 
 (4) компонент ADOConnection
предназначен для получения набора данных из базы данных.
 
 (5) компонент ADOConnection
может включать или отключать вывод запроса имени пользователя и пароля.
 
 (6) компонент ADOConnection
не может включать или отключать вывод запроса имени пользователя и пароля.
 
Упражнение 3:
Номер 1
Что такое набор данных?
Ответ:
 (1) группа файлов с базами данных.  
 (2) группа таблиц из базы данных. 
 (3) группа записей из одной или нескольких таблиц БД, полученная такими компонентами, как ADOTable
или ADOQuery
. 
Номер 2
Выберите верные утверждения:
Ответ:
 (1) набором данных называется группа записей из одной или нескольких таблиц БД, полученная такими компонентами, как ADOTable
или ADOQuery
. 
 (2) набором данных называется группа таких компонентов, как DBGrid
, DBEdit
, DBMemo
и т. п. 
 (3) набором данных называется один или несколько файлов, составляющих базу данных. 
Номер 3
Выберите неверные утверждения:
Ответ:
 (1) набором данных называется один или несколько файлов, составляющих базу данных. 
 (2) набором данных называется группа записей из одной или нескольких таблиц БД, полученная такими компонентами, как ADOTable
или ADOQuery
. 
 (3) набором данных называют такие компоненты, как ADOTable, ADOQuery
или ADOStoredProc
. 
 (4) набором данных называется группа таких компонентов, как DBGrid, DBEdit, DBMemo
и т. п. 
Упражнение 4:
Номер 1
Из группы компонентов выберите визуальные компоненты:
Ответ:
 (1) ADOConnection
. 
 (2) ADOTable
. 
 (3) DBGrid
. 
 (4) DataSource
. 
 (5) DBEdit
.  
 (6) DBNavigator
. 
Номер 2
Из группы компонентов выберите не визуальные компоненты:
Ответ:
 (1) ADOConnection
. 
 (2) ADOTable
. 
 (3) DBGrid
. 
 (4) DBEdit
. 
 (5) DBNavigator
.  
 (6) DataSource
. 
Номер 3
Из группы компонентов выберите компоненты отображения данных:
Ответ:
 (1) DBGrid
. 
 (2) DBEdit
. 
 (3) DBNavigator
. 
 (4) DBMemo
. 
Упражнение 5:
Номер 1
Для чего нужен компонент DataSource
?
Ответ:
 (1) для получения набора данных.  
 (2) для отображения набора данных. 
 (3) для связи набора данных и компонентами отображения данных. 
 (4) для связи приложения с базой данных. 
Номер 2
Укажите правильную последовательность действий, которые необходимо выполнить для отображения данных в сетке DBGrid
:
Ответ:
 (1) получить набор данных компонентом ADOTable
или ADOQuery
; установить связь компонента DataSource
с этим набором данных; подключить сетку DBGrid
к компоненту DataSource
. 
 (2) получить набор данных компонентом DataSource
; подключить к нему компонент ADOTable
или ADOQuery
; подключить сетку к ADOTable
или ADOQuery
.  
 (3) получить данные в сетку DBGrid
; подключить компонент DataSource к сетке, подключить набор данных ADOTable
или ADOQuery
к компоненту DataSource
. 
Номер 3
Укажите неправильные последовательности действий, которые необходимо выполнить для отображения данных в сетке DBGrid
:
Ответ:
 (1) получить набор данных компонентом DataSource
; подключить к нему компонент ADOTable
или ADOQuery
; подключить сетку к ADOTable
или ADOQuery
. 
 (2) получить данные в сетку DBGrid
; подключить компонент DataSource
к сетке, подключить набор данных ADOTable
или ADOQuery
к компоненту DataSource.  
 (3) получить набор данных компонентом ADOTable
или ADOQuery
; установить связь компонента DataSource с этим набором данных; подключить сетку DBGrid
к компоненту DataSource
. 
Упражнение 6:
Номер 1
Для чего нужен редактор полей набора данных?
Ответ:
 (1) для настройки содержимого полей. 
 (2) для настройки параметров полей. 
 (3) для редактирования данных в полях. 
 (4) для добавления новых полей в НД или удаления имеющихся. 
 (5) для включения/отключения видимости поля.  
 (6) для фильтрации записей в полях по заданному условию. 
Номер 2
Выберите действия, которые можно сделать с помощью редактора полей:
Ответ:
 (1) редактирование содержимого полей. 
 (2) добавление или удаление поля из списка полей набора данных. 
 (3) задание для поля маски отображения и редактирования данных в поле. 
 (4) управление видимостью полей. 
 (5) фильтрация записей в поле. 
 (6) поиск и редактирование данных в поле. 
Номер 3
Выберите действия, которые нельзя сделать с помощью редактора полей:
Ответ:
 (1) редактирование содержимого полей.  
 (2) добавление или удаление поля из списка полей набора данных. 
 (3) задание для поля маски отображения и редактирования данных в поле. 
 (4) фильтрация записей в поле. 
 (5) поиск и редактирование данных в поле. 
 (6) управление видимостью полей. 
Главная / Программирование / Программирование баз данных в Delphi / Тест 2
Учебники по базам данных Delphi Community edition, часть 1
Ускоренный курс Дельфи Учебники по базам данных Delphi Starter Часто задаваемые вопросы Советы Исходный код Загрузки Ссылки
Базы данных Delphi Community Editionс бесплатно Delphi Community Edition позволяет создавать приложения для баз данных. Delphi CE содержит компоненты для TClientDataSet, TFDConnection (база данных FireDac), TDataSource, TDBGrid, TDBEdit и другие. Введение Рассмотрим пример базы данных для библиотеки книг. В традиционном каталоге книг каждая карточка содержит библиографическую информацию о одна книга, включая название, тему, имя автора, дату публикации, ISBN номер, а может быть даже примерное местонахождение (на книжной полке). В цифровой базе данных мы используем следующие обозначения:
Компоненты базы данныхВ приложении базы данных Delphi необходимо как минимум:
В этом наборе руководств мы будем использовать компонент Delphi TClientDataSet. Это представляет набор данных в памяти, который можно использовать как полнофункциональный, автономный, основанный на файлах набор данных. Он может читать/записывать свои данные из/в файл на запоминающем устройстве (например, на жестком диске) Примечание. Вы также можете использовать SQLite для приложений баз данных: см. наш учебник по SQLite. MyBase: автономный ClientDataSet Для однопользовательского приложения базы данных в Delphi проще всего использовать компонент ClientDataSet.
и сопоставьте его с локальным файлом. Это отличается от традиционного отображения данных в файл. ClientDataSet считывает всю таблицу из файла. При запуске программы загружается весь файл в памяти, а в дальнейшем все изменения сохраняются разом. Этот подход нельзя использовать в ситуации с несколькими пользователями или несколькими приложениями. Если две программы или два экземпляра та же программа загружает тот же файл ClientDataSet в память и изменяет данные, последняя сохраненная таблица будет перезаписана изменения, сделанные другими программами. MyBase используется как синоним ClientDataSet. Его также называют Портфель Модель . MyBase в целом сохраняет данные в формате XML, хотя также доступен двоичный формат CDS. Учебники по базам данных — Часть 2 | Содержание 1. ВВЕДЕНИЕ В БАЗЫ ДАННЫХ |
Средство сравнения баз данных VCL для Delphi, C++Builder
Что нового Database Comparer VCL представляет собой 100% компонентов Delphi VCL для Borland Delphi / C++Builder. Эти компоненты позволяют сравнивать и синхронизировать объекты базы данных SQL и записи таблиц для многих популярных баз данных. Вы можете просмотреть все различия между базами данных и выполнить автоматически сгенерированный сценарий для устранения всех или только выбранных различий. Библиотека включает более 40 компонентов для разработки баз данных, и ее код постоянно дорабатывается и совершенствуется.
Лицензионное соглашение конечного пользователя
При покупке лицензии Database Comparer VCL вы получаете:
Database Comparer VCL сравнивает и синхронизирует структуры баз данных (метаданные) и табличные данные многих популярных баз данных. Список поддерживаемых баз данных постоянно обновляется и расширяется: InterBase, FireBird (включая Firebird 4.0 ), MySQL, MSSQL, Oracle, Sybase, PostgreSQL, DB2, PervasiveSQL, MSAccess, Paradox, DBASE и другие базы данных, к которым возможен доступ через поставщика OLEDB. Не нашли свою базу данных в этом списке? Возможно, скоро добавим. Присоединяйтесь к нам и следите за обновлениями. Большинство популярных библиотек соединений, таких как FireDAC, ADO и IBX, поддерживаются напрямую. Также поддерживаются некоторые сторонние библиотеки, такие как UniDAC, IBDDAC, IBObjects, ZEOS, AnyDAC и т. д. Вы даже можете использовать устаревшие методы подключения, такие как BDE или FIB, для подключения к своим базам данных. Продукт Database Comparer VCL включает более 40 компонентов для разработки, связанной с базами данных. При покупке Database Comparer VCL вы получаете полные исходные коды для всех компонентов, а также бесплатную неограниченную поддержку.
|