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

Из SQLlite3 в БД Firebird

04.06.2022, 14:25. Показов 3313. Ответов 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
459 / 361 / 83
Регистрация: 17.04.2022
Сообщений: 1,201
Записей в блоге: 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,686
Записей в блоге: 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,686
Записей в блоге: 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
9954 / 6489 / 2461
Регистрация: 21.01.2014
Сообщений: 27,488
Записей в блоге: 3
22.06.2022, 14:39
strikervoo, вот как бы смысл SQL-запроса - предоставить только нужные данные за минимальное время... Кому и на кой ляд могут потребоваться все записи сразу?
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,686
Записей в блоге: 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,686
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru