Добрый день!
Мне необходимо загрузить файл с рабочего стола в базу данных.
Delphi 10.4 / MS SQL Server
Пробую использовать TBlobfield, но делфи ругается
Добрый день!
Мне необходимо загрузить файл с рабочего стола в базу данных.
Delphi 10.4 / MS SQL Server
Так а как ругается-то?
Вообще в БД часто удобнее хранить не блобы, а просто пути относительно какой-то папки, где эти файлы лежат.
То есть файлы хранятся в определенной папке (копируются туда), например, папка files
рядом с программой/БД, а в БД хранится только путь относительно этой папки (то есть например просто имя файла).
И код лучше выкладывать в виде текста, а не скриншотами.
[dcc32 Error] Unit1.pas(265): E2003 Undeclared identifier: ‘ftBlob’
Увы, стоит задача на добавление файла в бд
Может есть другая альтернатива?
LoadFromStream есть еще, но там тоже тот же ftBlob нужно задать. В uses юнит добавь как выше подсказуют
зы еще собаку не надо в имени параметра указывать
Все заработало, спасибо.
//загружаю ФАЙЛ в бд
for i := 0 to Length(ArrLeads) - 1 do
begin
DM.spIns.Parameters.Refresh;
DM.spIns.Parameters.ParamByName('File').LoadFromFile('C:\Users\Json.jpg', ftBlob);
end;
НО данные в таблицу не заносятся, не пойму почему
Ну для начала надо проверить выполняется ли вообще эта часть кода добавив точку остановки в отладчике или отладочный вывод, меседжбокс и т.д.
А это что?
Добавила отладочный вывод, кусок кода выполняется, в БД не заносится(
for i := 0 to Length(ArrLeads) - 1 do - у меня вложенный json файл
а где, собственно, выполнение кода Insert вставки в БД ?
после строчки
нужна строчка с
DM.spIns.ExecSql;
а ещё, абсолютно непонятен ваш цикл
зачем он? Если внутри цикла ничего не меняется?
Или Вы хотите много раз вставить в БД один и тот же файл? А в чём смысл?
Всем спасибо. Учла замечания
Возник еще один вопрос
Мне необходимо получить файлы и закинуть в базу данных
Делаю гет-запрос на получение файла
procedure TForm1.Get;
var
m : TMemoryStream;
begin
....
IdHTTP1.Get('https://1234', m);
m.SaveToFile('1.jpg');
...
end
И пытаюсь занести в БД
DM.cds_Slc.Open;
if DM.cds_Slc.RecordCount > 0 then
begin
DM.cds_Slc.First;
while not DM.cds_Slc.Eof do
begin
Get;
DM.spUpd.ExecProc; //spUpd - процедура Update
end;
end;
Один файл сохраняет, но в БД не заносит. На второй итерации while вылетает с ошибкой http/1.1 400 bad request
В БД есть столбец File с типом данных Image, туда надо занести файл
Есть хранимая процедура
ALTER PROCEDURE [dbo].[update_Doc]
@IdDoc int = null,
@File image = null
AS
BEGIN
UPDATE Doc SET
IdDoc = @IdDoc,
File = @File
Where IdDoc = @IdDoc
END;