1 (edited by k245 2022-12-15 07:48:03)

Topic: Альтернативное чтение данных из BLOB

Работаю над проектом, который подключен к двум базам SQLite. Не могу придумать, как читать данные из BLOB полей дополнительной базы.


Подключение второй базы делаю так:


ATTACH DATABASE base2.db as base2 

Запись в BLOB тоже работает, а вот с чтением - проблемы, так как стандартная функция SaveFileFromDataBase ( SaveFileFromDataBaseToStream) не принимает алиас второй базы в имени таблицы.


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


Может, есть ещё какие-нибудь рабочие варианты?


Костыли тоже рассматриваю )))


Литературный вариант данной истории:
https://k245.ru/mvdb/fajlovoe-hranilishhe.html

Визуальное программирование: блог и телеграм-канал.

2 (edited by pavlenko.vladimir.v 2022-12-14 09:10:25)

Re: Альтернативное чтение данных из BLOB

Обязательно работать с двумя БД, может не подключать вторую БД, а переключаться между ними?

Re: Альтернативное чтение данных из BLOB

pavlenko.vladimir.v wrote:

Обязательно работать с двумя БД, может не подключать вторую БД, а переключаться между ними?

Ну, как костыль сойдёт ))) Подскажите, пожалуйста, как программно менять основное подключение к БД в SQlite? Мне казалось, что тут только перезагрузка работает....

Визуальное программирование: блог и телеграм-канал.

Re: Альтернативное чтение данных из BLOB

Form1.SQLConnection.Connected := False;
Form1.SQLConnection.Params.Add('');

Re: Альтернативное чтение данных из BLOB

pavlenko.vladimir.v wrote:

Form1.SQLConnection.Connected := False;
Form1.SQLConnection.Params.Add('');


Спасибо, использую это в другом проекте, где не требуется одновременный доступ к двум базам. Давно хотел хранить настройки меню, форм, локализацию, картинки и другие ресурсы в отдельной базе, не связанной с основной (пользовательской).

Визуальное программирование: блог и телеграм-канал.

Re: Альтернативное чтение данных из BLOB

Подскажите, как указывать из какой базы делается выборка?
У меня в проекте логически требуется подключение к 3 базам, 2 из которых не содержат файлов, поэтому проблема BLOB тут не поднимется, а элементы форм все равно заполняются программно.

ОФФ. Как добавить строки в TreeView так, чтобы MVD видела id привязанных к ним записей (заполняла sqlValue)?

Re: Альтернативное чтение данных из BLOB

SELECT * FROM  <алиас базы>.<таблица>

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


если подключение было таким

ATTACH DATABASE 'c:\base2.db' as 'base2' 

то выборка делается так

SELECT * FROM  base2.mytable
Визуальное программирование: блог и телеграм-канал.

Re: Альтернативное чтение данных из BLOB

indigen wrote:

ОФФ. Как добавить строки в TreeView так, чтобы MVD видела id привязанных к ним записей (заполняла sqlValue)?

Нужно указывать свойство ID у строки:

tmpGrid.Row[tmpRow].ID := <id записи>

Это касается как таблиц, так и деревьев.

Визуальное программирование: блог и телеграм-канал.

Re: Альтернативное чтение данных из BLOB

k245 wrote:
indigen wrote:

ОФФ. Как добавить строки в TreeView так, чтобы MVD видела id привязанных к ним записей (заполняла sqlValue)?

Нужно указывать свойство ID у строки:

tmpGrid.Row[tmpRow].ID := <id записи>

Это касается как таблиц, так и деревьев.

В таблицах проще, там нужно что бы в выборке был столбец id и она его сама по строкам раскидывает, а вот деревья - не хотят...
За подсказку огромное спасибо!

Re: Альтернативное чтение данных из BLOB

k245 wrote:

SELECT * FROM  <алиас базы>.<таблица>

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


если подключение было таким

ATTACH DATABASE 'c:\base2.db' as 'base2' 

то выборка делается так

SELECT * FROM  base2.mytable

Подскажите пожалуйста как быть если часть баз (или все) будут не SQLite, а MySQL?

Re: Альтернативное чтение данных из BLOB

indigen wrote:

Подскажите пожалуйста как быть если часть баз (или все) будут не SQLite, а MySQL?

http://myvisualdatabase.com/forum/viewtopic.php?id=6934

Визуальное программирование: блог и телеграм-канал.

Re: Альтернативное чтение данных из BLOB

DriveSoft писал:


Но использовать привязанную базу данных можете только с помощью SQL, ...
http://myvisualdatabase.com/forum/viewt … 413#p21413

Re: Альтернативное чтение данных из BLOB

Спасибо за ссылки!