
BG Development · За реклама · За контакти |
![]() ![]() ![]() ![]() ![]() |
Здравей! ( Включване | Регистриране ) |
![]() ![]() ![]() |
Бай Аз |
Публикувано на: 01-11-2022, 09:46
|
Име: Група: Потребител Ранг: Посетител Мнения: 71 Регистриран на: 04.02.21 ![]() |
Здравейте! Правя пример с използване на Sqlite.db в Lazarus. В базата данни имам една таблица с няколко колони. На формата съм сложил SQLite3Connection1, SQLTransaction1, SQLQuery1, DataSource1, DBGrid1 и DBNavigator1. Всички компоненти са свързани взаимно и всичко работи. Имам бутони за създаване на база данни, за свързване към база данни и за преглед на данните в DBGrid1. Всичко работи. Искам да демонстрирам работата с ТDBNavigator. DBNavigator1 е свързан с DataSource1 и всички бутони в него работят, освен бутон Refresh. При натискане на бутона Refresh се появява съобщение за грешка с текст: SQLQuery1: Must apply updates before refreshing data Пробвах много неща, за да реша проблема: включвах се директно към базата данни, променях базата - изтрих колоната за autoincrement, променях много настройки в компонентите, четох в интернет в интернет и не намерих нищо подходящо като решение. Зная, че тук има опитни хора в работата с Делфи (в случая ще решението ще стане и за Lazarus) и се надявам, че някой ще ми помогне да намеря решение! Желая на всички приятен ден! (Нужно ми е решение само с дадените компоненти и по возможност без допълнителни бутони и процедури) |
ivanov03 |
Публикувано на: 03-11-2022, 06:07
|
||||
Име: Група: Потребител Ранг: Посетител Мнения: 87 Регистриран на: 14.12.12 ![]() |
Здравей! Сблъсквал съм се с подобни проблеми. Ето едно просто решение: да си направиш бутон "Запис на данните"(или Refresh) и в него да напишеш следния код:
Сега видях, че си писал, ако може без допълнителни бутони. Тогава, едно от възможните решения е: чрез събитието OnBeforeAction на TDbNavigator-а:
Това е от мен! Това мнение е било редактирано от ivanov03 на 03-11-2022, 06:12 |
||||
Бай Аз |
Публикувано на: 03-11-2022, 13:14
|
Име: Група: Потребител Ранг: Посетител Мнения: 71 Регистриран на: 04.02.21 ![]() |
Благодаря много, Иванов! Току що го изпробвах - и при двата варианта работи перфектно! Пробвах го на 32 битовата версия на Лазарус 2.24, а довечера ще го пробвам и на 64 битовата, и ще пиша какво е станало. (Иначе за моя пример ще оставя втория вариант: без допълнителен бутон, като съм сложил една допълнителна проверка - дали има отворена БД?) Желая на всички приятен ден и всичко най-хубаво! |
Бай Аз |
Публикувано на: 03-11-2022, 14:51
|
||||
Име: Група: Потребител Ранг: Посетител Мнения: 71 Регистриран на: 04.02.21 ![]() |
(Не мога да си редактирам мнението, явно има някакво времево ограничение за редакция тук, затова пиша нов пост) Ще дам кода в две от процедурите, които споменахме тук, за да могат тези, които се учат, да видят как става: Първата е при вариант 1, когато правим нов бутон за обновяване:
А втората е за показване на всички записи от таблицата потребители:
Не се притеснявайте, ако някой не разбира нещо, нека да зададе въпрос! |
||||
Бай Аз |
Публикувано на: 04-11-2022, 08:41
|
Име: Група: Потребител Ранг: Посетител Мнения: 71 Регистриран на: 04.02.21 ![]() |
Здравейте! Вчера вечерта изпробвах програмата по двата начина и на 64 битовата версия на Lazarus, и всичко работи чудесно! В тази тема можете да зададете въпрос за работата с бази данни в Lazarus, а аз ще преглеждам темата и ще се старая да отговарям на въпросите! Желая на всички приятен ден и всичко най-хубаво! |
Бай Аз |
Публикувано на: 25-11-2022, 10:34
|
Име: Група: Потребител Ранг: Посетител Мнения: 71 Регистриран на: 04.02.21 ![]() |
Здравейте! За свързване с база данни MySQL Тук ни трябва динамична библиотека (libmysql.dll), която трябва да поставим в папката(директорията) на проекта. А тази библиотека я вземаме от папката където сме инсталирали MySQL - от папката Lib. Библиотеката за последната версия на MySQL е версия 8.0.31.(Версиите трябва да съвпадат) Друго важно нещо за локално свързване - не успях да се свържа чрез сървърите XAMPP и WAMP. Успях чрез пряка инсталация на MySQL и направих базата данни чрез Workbench и SQL заявки. Ето какво написах в MySQL80Connection1: DataBaseName: new_base (името на базата ни) Host: localhost Port: 3306 Pasword: root (вие ще зададете своя парола) UserName: root (вие ще зададете свое потребителско име) За свързване с база данни PostrgreSQL Тук е почти същото само синтаксисът е леко различен. Разлика има в това, че се ползват четири динамични библиотеки, ако някой се интересува, ще напиша кои точно са те. Ако имате въпроси за ползването на бази от данни в Lazarus, задавайте ги тук, аз ще следя темата. Желая ви всичко най-добро! |
Бай Аз |
Публикувано на: 29-11-2022, 13:38
|
Име: Група: Потребител Ранг: Посетител Мнения: 71 Регистриран на: 04.02.21 ![]() |
Здравейте! Успях да се свържа с базата във WAMP сървър! Направих си нов потребител с парола и всички права, и поставих в проекта динамичната библиотека (libmysql.dll) версия 8.0.27, която се ползва в този сървър и стана! В XAMPP сървър не успявам да се свържа, вероятно защото той работи с Maria.db, а конекторът в Lazarus е предназначен за работа с MySql. Ако имате въпроси за работата с бази данни в Lazarus - питайте тук! А аз ще следя темата и ще се стремя да отговоря. |
![]() |
![]() ![]() ![]() |