Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 49

Из SQLlite3 в БД Firebird

04.06.2022, 14:25. Показов 3252. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток господа;
Имею БД SQLlite3 появилась нужда перенести всю информацию в другую бд другого типа (Firebird)
БД Firebird создал ровно такую же по структуре
а вот как перенести простым запросом sql не могу понять
если с 2 одинаковыми БД всё ясно (найдено на форуме)

Delphi
1
2
3
4
5
6
ADOQuery1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data ' + 'Source=' + ExtractFilePath(Application.ExeName) + 'Base\Base1.mdb' + ';Persist Security Info=False';
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('SELECT A.AutorName, B.BookName');
  ADOQuery1.SQL.Add('FROM Autors AS A INNER JOIN [B][Base\Base2][/B].Books AS B ON A.AutorID = B.BookID');
  ADOQuery1.Open;
то с БД разного типа не совсем


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
ADOQuery1.ConnectionString := 
'Provider=MSDASQL.1;Persist Security Info=False;Extended Properti' +
          'es="Driver={SQLite3 ODBC Driver};Database=C:\nginx\public_html\d' +
          'b\main.sqlite;StepAPI=0;SyncPragma=;NoTXN=0;Timeout=;ShortNames' +
          '=0;LongNames=0;NoCreat=0;NoWCHAR=0;FKSupport=0;JournalMode=;OEMC' +
          'P=0;LoadExt=;BigInt=0;JDConv=0;"';
 
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('insert in to имя таблицы[строка подключения] ([поле1,пол2,...,поле3]) values (select * from имя таблицы )');
 
  ADOQuery1.Open;

вот тут и возникла сложность, может кто то подкинет пример, ну либо поправит текущее добро!?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.06.2022, 14:25
Ответы с готовыми решениями:

SQLLite3: Boolean в сложном select запросе
Всем здравствуйте. Возникла проблема с написанием SELECT-запроса к таблице, в котором много условий выборки. Таблица...

Как передать данные из javascript в БД sqllite3?
У меня будет на странице datepicker. У меня есть в модели поле - bir_date = models.DateField(verbose_name="") И я его...

Delphi + Sqllite3.dll + Resource извлечь, подключить, использовать
Для работы с Sqllite требуется dll Sqllite3.dll которая обязана находится в папке рядом с программой или system32. Цель спрятать dll ку...

34
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 49
07.06.2022, 19:49  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Gluck99 Посмотреть сообщение
ТС тренируется на Access. Думает, что потом просто заменит подключение на SQLite и вуаля, всё готово.
чисто для примера!
0
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 49
07.06.2022, 20:10  [ТС]
Цитата Сообщение от sqltd1 Посмотреть сообщение
Вы бы вашу БД продемонстрировали что-ли. Или уточните - это для работы или для учебы. Соответственно с вами будут общаться практики или теоретики
вот 2 базы из main надо в bases_zona
Вложения
Тип файла: rar main.rar (1.18 Мб, 11 просмотров)
Тип файла: rar BASES_ZONA.rar (75.4 Кб, 13 просмотров)
0
446 / 347 / 83
Регистрация: 17.04.2022
Сообщений: 1,165
Записей в блоге: 8
08.06.2022, 16:18
Цитата Сообщение от strikervoo Посмотреть сообщение
вот 2 базы из main
Ну, дерзайте. Неплохой примерчик.

Я прикрепил файл export.txt . В нем пример выгрузки из sqlite в формат, который понимают CLI инструменты.
Вам нужно отсюда https://www.sqlite.org/download.html загрузить sqlite-tools для вашей ОС.
Извлеките утилиту sqlite3 и поместите ее , export.txt и вашу базу, переименованную в main.sqlite в какой нибудь каталог.

исполните команду sqlite3 main.sqlite ".read export.txt"

у вас должен сгенерироваться файл dump.sql. Этот файл вам возможно придется "подстрогать" для того чтобы исполнить его на CLI для Firebird см. где-то здесь https://firebirdsql.org/manual... ities.html

А про делфи забудьте. Этот инструмент предназначен для других задач.

Удачи. Когда преодолеете, получите кучу опыта. Было-бы интересно почитать впечатления по горячим следам.

Кстати. А почему не PostgreSQL? По внешним признакам вы из гос структур. У них Firebird скорее всего пойдет под нож.
Вложения
Тип файла: txt export.txt (66 байт, 3 просмотров)
0
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 49
08.06.2022, 20:57  [ТС]
Цитата Сообщение от sqltd1 Посмотреть сообщение
Кстати. А почему не PostgreSQL? По внешним признакам вы из гос структур. У них Firebird скорее всего пойдет под нож.
это для внутреннего использования!

Добавлено через 1 час 29 минут
Цитата Сообщение от sqltd1 Посмотреть сообщение
Удачи. Когда преодолеете, получите кучу опыта. Было-бы интересно почитать впечатления по горячим следам.
Вариант конечно интересный, получил все данные разом это хорошо, только в данных разные форматы и это проблема(( попоробуем перебрать их через firedac
Цитата Сообщение от sqltd1 Посмотреть сообщение
А про делфи забудьте. Этот инструмент предназначен для других задач.
ну пока что другими инструментами не овладел

Добавлено через 33 минуты
Цитата Сообщение от krapotkin Посмотреть сообщение
и записываете их в другую базу при помощи FDUpdateSQL во вторую базу
тут по подробнее можно?

Добавлено через 10 минут
Цитата Сообщение от krapotkin Посмотреть сообщение
и записываете их в другую базу при помощи FDUpdateSQL во вторую базу
создаю 2 TFDconnection tfd_fb и tfd_sqllite ложу tfd_updatesql и там в поле конект только 1 подключение!
не могу сообразить не хватает знаний чтобы соеденить 2 подключения
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,681
Записей в блоге: 21
09.06.2022, 08:42
нет никаких "соединений"
одно подключение и его Query - выкачивает данные из одной БД в переменные
другое подключение через Query либо UpdateSQL из переменных эти данные записывает в другую БД
(справку по FireDac я не собираюсь пересказывать своими словами)

но этот вариант не вариант
все эти дела с переносом данных действительно делаются через получение SQL из одной базы, потом подстройку SQL и применение его к другой базе. тем более для этого в FB есть великолепный скриптер внутри великолепного IBExpert

пишу тут последний пост, потому что вижу упорство автора в продолжении нашей любимой игры в XYZ
1
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 49
10.06.2022, 23:02  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
все эти дела с переносом данных действительно делаются через получение SQL из одной базы, потом подстройку SQL и применение его к другой базе.
К этому и пришол, спасибо!
Цитата Сообщение от krapotkin Посмотреть сообщение
Query либо UpdateSQL
с query мне всё ясно и частично подстроил запрос для переноса из БД в БД оказалось не так уж и медленно, не могу понять как работать с UpdateSQL, вижу генерирует запросы с параметрами,которыми не могу воспользоваться(скорее их нужно обьявлять в params), в целом не могу понять как этим компонентом пользоваться!?
0
408 / 242 / 88
Регистрация: 28.04.2022
Сообщений: 1,207
11.06.2022, 00:51
Цитата Сообщение от strikervoo Посмотреть сообщение
К этому и пришёл, спасибо!
Вот она, стадия принятия. Не за что.

В следующий раз не мучайте людей пустой тратой времени и не мучайтесь сами.
0
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 49
11.06.2022, 09:13  [ТС]
Цитата Сообщение от Gluck99 Посмотреть сообщение
В следующий раз не мучайте людей пустой тратой времени и не мучайтесь сами.
думалось что SQL запосом а не перебором!

вопрос другой встал как работать и применять UpdateSQL, или тоже не мучиться?
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,681
Записей в блоге: 21
14.06.2022, 10:17
зайду чуть сначала
для каждого действия на сервер передается sql запрос
SELECT, UPDATE, DELETE, INSERT
передавать запрос каждый раз серверу - плохой тон. особенно на больших базах, на больших запросах по 50 и более строк
потому что сервер каждый раз парсит этот запрос, кладет в кэш и только потом начинает с ним работать
правильная практика - параметры,
запрос сидит на сервере, а передаются только новые параметры. Таким образом возникает потребность в 4 Query для одной и той же таблицы
чтобы не плодить их, есть компонент TUpdateSQL он "прикрепляется" к основному Query, где лежит SELECT, и хранит UPDATE, INSERT, DELETE запросы. Собственно в этом его предназначение. Ну еще, если более глубоко, если у нас работа ведется в рамках транакций, то транзакции на запись и чтение - обычно разные, поэтому этот компонент можно подключить к другой транзакции нежели SELECT.
Насколько я помню дальше все автоматически, если мы напишем
Query.Insert; то будет найден и вызван запрос не из Query а из подключенного UpdateSQL
вот тут могу ошибаться, потому что давно уже не делаю никакой Query.Insert, а работаю напрямик через SQL запросы.
Эта технология все-таки уже пришла и ушла вместе с концепцией клиент-сервер, от которой нынче практически отказались.
1
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 49
22.06.2022, 13:10  [ТС]
Образовалась новая проблема firedac sqllite, заключается в следующем команда select * form table выводит 1050 записей и не более, это одно подключение, а есть ещё одно подключение оно пишет [firedac][dats]-32. variable length column [поле]
overflow. Value legth -[61], column maximum length - [50], и тоже это пишется на 1050 строке.
не могу понять как бороться, подскажите!
0
Модератор
 Аватар для D1973
9945 / 6480 / 2460
Регистрация: 21.01.2014
Сообщений: 27,462
Записей в блоге: 3
22.06.2022, 14:39
strikervoo, вот как бы смысл SQL-запроса - предоставить только нужные данные за минимальное время... Кому и на кой ляд могут потребоваться все записи сразу?
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,681
Записей в блоге: 21
22.06.2022, 17:09
не "выводит 1050 записей" а "валится на 1050-й строке, потому что кто-то указал размер поля скока-та (50) а из базы прилетела строка подлиннее (61)
0
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 49
22.06.2022, 20:49  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
прилетела строка подлиннее (61)
согласен хм, в исходной базе сменить длину на 254, попробую!
Цитата Сообщение от D1973 Посмотреть сообщение
strikervoo, вот как бы смысл SQL-запроса - предоставить только нужные данные за минимальное время... Кому и на кой ляд могут потребоваться все записи сразу?
для перегона в другую БД, этот временный выбор нужен для отладки приложения на новой БД
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,681
Записей в блоге: 21
22.06.2022, 21:04
я так понимаю не в базе а в компоненте
0
0 / 0 / 0
Регистрация: 29.05.2022
Сообщений: 49
23.06.2022, 21:37  [ТС]
Цитата Сообщение от krapotkin Посмотреть сообщение
я так понимаю не в базе а в компоненте
компонент fdquery уже в нём выскакивает!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.06.2022, 21:37

Бот discord.py Проблема с обработкой(Обновлением) таблицы в async методе, sqllite3
Заранее извиняюсь за всю корявость, спасибо за вашу помощь и уделённое время :) Суть проблемы состоит в том, что это попытка обновить...

FireBird + Interbase&Firebird Development Studio
Установил FireBird 2.5 SuperClassic и Interbase&Firebird Development Studio. Зашел в студию, создал таблицу, пытаюсь создать БД - выдает...

Разбиение строки в FireBird - Firebird/InterBase
Продолжая тему отсюда: https://www.cyberforum.ru/firebird/thread309236.html :wall: Есть поле типа VARCHAR, в котором хранятся данные вида...

Драйвер node-firebird и firebird
Добрый вечер! Имеется такой код подключения к БД и запрос: var Firebird = require('node-firebird'); var options = {}; ...

Как или чем конвертировать таблицы из Firebird в MySQL или наоборот из MySQL в Firebird ?!
Предлагайте все возможные варианты! Заранее при много благодарен!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru