Lazarus работа с реестром windows

fcl-registry/ru

fcl-registry это модуль FCL, обеспечивает доступ к реестру Windows.

Contents

Термины реестра

RootKey: куст реестра, в котором вы хотите начать доступ к реестру. Примеры: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER

Ключ (key): куть к «каталогу» который содержит отдельные данные. Это немного трудно для понимания, но осталось для совместимости с более ранними версиями реестра.

Имя/значение: фактическая пара имя/значение в ключе реестра «каталог». Каждый ключ может иметь значение по умолчанию, чье имя (пустая строка).

Пример

Пример, который пытается получить значение по умолчанию по адресу HKLM\SOFTWARE\Classes\InnoSetupScriptFile\shell\Compile\Command:

Доступ к 64-битному и 32-битнму реестру

Если вы имеете 64-разрядную Windows, реестр разделен на 64-битную и 32-битную часть (совместимость). По умолчанию, если вы запускаете 32-битный процесс, вы увидите 32-битную часть, а если 64-битное приложение — 64-битную часть.

Вы также можете получить доступ к 32-битной части из 64-битных приложений, и наоборот. Из MSDN: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384129%28v=vs.85%29.aspx

  • KEY_WOW64_64KEY: Доступ к 64-битному ключу из 32-битного или 64-битного приложения.
  • KEY_WOW64_32KEY: Access a 32-битному ключу из 32-битного или 64-битного приложения.

Эти ключи определены в модуле registry , так что вы можете просто использовать их: например, в свойстве Access объекта реестра, вот так:

или в вызове registry.create, вот так:

Административные права

В зависимости от того, что вы хотите читать/писать в реестр, вам может понадобиться повышение прав администратора (Windows Vista+). Смотрите IDE_Window:_Project_Options#Use_manifest_file_to_set_execution_level_.28Windows_only.29

Работа с кириллицей в реестре в Lazarus 2.0.10

До обновления версии Lazarus при записи-чтении настроек в реестре использовал функцию UTF8ToWinCP. В новой версии это происходит автоматически, а мой код только портит текст. Значит нужно изменять и перекомпилировать все проекты, работающие с реестром?

Может ещё есть подобные нововведения?

Почему у Lazarus такие проблемы с кириллицей?
Я нашел кое-какие сведения о том,что лазарус работает с юникодом, но ведь делфи2007 тоже вроде был.

Строки с кириллицей в Lazarus: какая буква, первая или последняя, встречается в строке
Если бы требовалось подсчитать количество английских букв, да в строке из английских букв, то.

Установка ZEOS в Lazarus, работа с PostgressSQL в Lazarus
Не получается никак установить компонент ZEOS в Lazarus открываю пакет с Zeos, нажимаю.

Работа с кириллицей
Есть такой перл #include #include #include using namespace std;.

Решение

Ну, значит, я путаю. С Windows-то давно не работаю.

Значит, придется корректировать код и пересобирать его. Странно, что этого нет в списке изменений для пользователя.

Скорее всего, они наконец-то перешли на использование W-функций WinAPI, поэтому теперь не нужны UTF8ToWinCP, надо будет в исходниках покопаться.

, так что искать нужно было не в Лазарусовской ветке изменений, а в ветке для FPC.

Добавлено через 36 секунд

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Работа с кириллицей в тхт
Всем привет!! програма база даних сотридников которая бирет данние из тхт файла проблема в том.

Читайте также:  Создание файла ответов для автоматической установки windows 10

Autocomplete: работа с кириллицей
Работаю с родным от JQuery автокомплитом. Сервер обрабатывает запросы и все хорошо отправляет в.

Посимвольная работа с кириллицей
В общем поставили мне задачу реализовать расстояние Дамерау-Левенштейна, вишенкой этого ******.

UrlDecode, Работа с кириллицей
Сам пишу на C#. Тут возникла задача «общания с прогой», написанной в С++ 6.0. Проблема возникла с.

Работа с кириллицей в ofstream/ifstream
Как сохранять русские буквы в ofstream и выводить русские буквы в через ifstream ?

Работа с кириллицей без правок реестра
Доброго времени суток. Пользую vba на машинке без админских прав (правки в ресстре делать нельзя).

Lazarus работа с реестром windows

Как видно из заголовка в данной статье пойдет разговор о работе с базами данных при помощи Ide Lazarus. Базы данных занимают важную роль в современном мире, их используют для создания большинства сайтов, информационных систем, различных программ. В мире насчитывается огромное количество СУБД (Система управления базами данных), как коммерческих MsSql, Orcle, Interbase так и бесплатных вроде MySQl, PostgreSQL, Firebird, Sqlite. Lazarus же позволяет работать с большинством из них, для этого в среду можно установить компоненты для работы с соответствующими СУБД. Мы же рассмотрим общие способы работы с базами данных. В основе большинства баз данных лежит язык SQL ( язык структурированных запросов ) , который позволяет получать о обрабатывать наборы данных. По поводу синтаксиса данного языка можно почитать на википедии либо на соответствующих форумах. Мы же будет рассматривать непосредственную работу с данными.

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

Состав вкладки SQLdb.

TSQLQuery Компонент для получения и изменения данных
TSQLTransaction Компонент для работы с транзакциями
TSQLScript Компонент для работы с большим количеством Sql кода
TSQLConnector Компонент для установления подключения к различным базам данных
TMSSQLConnection Компонент для подключения к СУБД MSSql (Microsoft SQL Server)
TSybaseConnection Компонент для подключения к СУБД Sybase (Sybase SQL Server)
TPQConnection Компонент для подключения к СУБД PostgreSQL
TPQTEventMonitor Компонент для взаимодействия с событиями в PostgreSQL
TOracleConnection Компонент для работы с СУБД Oracle
TODBCConnection Компонент для доступа к данными посредством драйверов ODBC
TMySQL40Connection Компонент для подключения к СУБД MySql версии 4.0
TMySQL41Connection Компонент для подключения к СУБД MySql версии 4.1
TMySQL50Connection Компонент для подключения к СУБД MySql версии 5.0
TMySQL51Connection Компонент для подключения к СУБД MySql версии 5.1
TMySQL55Connection Компонент для подключения к СУБД MySql версии 5.5
TMySQL56Connection Компонент для подключения к СУБД MySql версии 5.6
TSQLite3Connection Компонент для подключения к СУБД SQLite
TIBConnection Компонент для подключения к СУБД Firebird, Interbase
TFBAdmin Компонент для управления сервером Firebird
TFBEventMonitor Компонент для работы с событиями Firebird, Interbase
TSQLDBLibraryLoader Компонент для загрузки библиотеки доступа к данным

Так же для работы потребуется компонент TDataSource с вкладки Data Access, он является прослойкой между компонентами для доступа к данным и компонентами для отображения данных.

Читайте также:  Ошибка cpu при запуске windows

Доступ к данным.

Для подключения к какой либо СУБД на форму или датамодуль следует разместить требуемый компонент. Все зависит от требуемой СУБД. Я выбрал SQLite и соответственно добавил на форму TSQLite3Connection. Он позволит настроить подключение к требуемой базе данных. Так же следует добавить на форму компонент TSQLTransaction. Он обеспечивает целостность работы с данными. О нем будет позже более подробнее.

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

Сделать это можно примерно так.

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

Что бы получить данные из базы на форму помещается компонент SQLQuery1, у него в качестве database указывается компонент SQLite3Connection1, а в качестве параметра transaction компонент SQLTransaction1.

Затем вписать в свойство SQL соответствующий запрос для выборки данных и выполнить процедуру Open. Если требуется добавить изменить или удалить данные то следует сделать ExecSQL.

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

Для навигации по набору данных используются следующие методы.

First Перейти на самую первую запись
Last Перейти на самую последнюю запись
Prior Перейти на запись назад
Next Перейти на запись вперед

Данные методы позволяют передвигаться по строкам таблицы.

Допусти нам надо пройтись по всем строкам таблицы и скопировать определенное значение, самый простой способ будет таким.

Так же для навигации по данным можно использовать визуальный компонент TDBNavigator.

Для отображения данных из базы используются компоненты из вкладки Data Controls, они созданы на базе обычных визуальных компонентов, но предназначены для отображения данных различных типов.

Что бы отобразить полученные данные на форму размещается компонент DataSource1 и визуальный компонент DBGrid1. У компонента DataSource1 свойству DataSet присваивается компонент SQLQuery1, а у компонента DBGrid1 выставляется свойство DataSource равным DataSource1. Теперь если сделать SQLQuery1.Open то в таблице отобразятся данные из базы.

Добавление данных

Добавлять данные в таблицу можно двумя способами. Один через открытый набор данных. Второй через выполнение специального sql запроса INSERT. Рассмотрим оба способа.

Добавление данных через открытый набор данных.

Для манипулирования с данными используются следующие команды.

Append Открывает процедуру добавления записи в конец набора данных
Insert Открывает процедуру добавления записи в текущее место набора данных
Edit Открывает процедуру редактирование текущей записи
Post Записывает данные
Delete Удаляет выбранную запись
Cancel Отменяет процедуру работы с данными
Refresh Обновляет набор данных

Эти команды использует большинство компонентов для работы с данными.

Пример добавления новой записи через набор данных.

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

Пример добавления данных через sql запрос.

Читайте также:  Ddos bluetooth kali linux

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

Изменение данных.

Изменить данные в базе можно несколькими способами. Рассмотрим два способа изменения данных при помощи компонентов Sqldb.

Первый способ будет через открытый набор данных.

Достаточно встать на требуемую запись и открыть её через процедуру Edit

Так же данные можно редактировать через sql запрос UPDATE

Удаление данных

Удалить данные из базы не сложно, главное удалить именно те данные, а не те которые были нужны. Зачастую от этого спасают транзакции и бекапы. Но не всегда. Рассмотрим так же два способа удаления данных.

Удаление из набора данных. Просто становимся на требуемую запись и выполняем следующий код.

Также удалить данные можно через sql запрос DELETE, делается это следующим образом.

При удаление данных через запрос нужно точно знать какие данные удалять. Если сделать так.

То удаляться все данные из таблицы table1. Поэтому требуется точно указывать какие данные удалять.

Поиск данных.

Поиск данные является одной из необходимых вещей при работе с базами данных. Существует несколько способов осуществления данной операции. Не будем рассматривать все. Остановимся на самых простых.

Первым способом будет поиск в выбранном наборе данных. Он осуществляется по конкретному столбцу или столбцам данных. Выглядит это так.

При использование данной записи маркер выбранной записи переместиться на найденную запись, если искомых данных не будет обнаружено то маркер переместиться на последнюю запись.

Так же можно сделать выборку данных с условием отбора SELECT . WHERE делается это так.

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

Пример использования функции из кода.

Данный запрос выведет все имена содержащие букву и.

Есть небольшая проблема у SQLite. В данной СУБД оператор LIKE поддерживаться полностью только для латиницы, для кириллицы он тоже работает но только с соблюдением регистра букв. Что бы избежать данной проблемы требуется либо использовать библиотеку sqlite3.dll с поддержкой ICU, либо использовать свою функцию LIKE.

Транзакции

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

Пример работы с транзакциями из кода.

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

Вот так примерно можно работать с базами данных из Lazarus при использование компонентов SQLdb. Данная статья не претендует на звание самого умного документа, а просто показывает общие методы работы с базами данных.

Оцените статью