Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

BLOB-поле [D7, Firebird]


kalliopiy ©   (2004-03-05 13:30:00) 

Здравствуйте!
Возникли проблемы при попытке добавления записи в таблицу с BLOB-полем. Я пытаюсь сделать это через TIBSQL приблизительно через следующий код

with TStringList.Create do
begin
 LoadFromFile(docForm.filePathEd.Text);
 s:=QuotedStr(Text);
 Free;
end;
Q:=TIBSQL.Create(nil);
Q.Database:=lawdocsDB;
Q.Transaction:=lawdocsTA;
Q.Transaction.StartTransaction;
Q.SQL.Add('INSERT INTO "docs" VALUES');
Q.SQL.Add('(NULL,'+inttostr(nodeData.recID)+','+''''+docForm.docCaptionEd.Text+''','+
s+','+''''+datetostr(docForm.docDateEd.Date)+''')');
Q.ExecQuery


Но при выполнении запроса возникает ошибка SQL code = -104. Unexpected end of command.

У меня складывается такое впечатление, что это происходит из-за того, что считываемый и сохраняемый в поле БД файл слишком велик. Но сохранять-то его как-то надо! А как?


Soft   (2004-03-06 05:29:00) [1]

Вот простой пример

Query.SQL.Clear;
Query.SQL.Add('insert into ***');
Query.ParamByName('поле').LoadFromFile('имя файла',ftBlob);
Query.ExecSQL;


Tlank   (2004-03-05 17:31:00) [2]

Через хранимую процедуру можно передать параметр:

Fstr:=TFileStream.Create(OpenDialog.FileName,fmOpenRead);
with StoredProc.Parameters.AddParameter do begin  
 Direction:=pdInput;
 StoredPRoc.Parameters[13].LoadFromStream(Fstr,ftBlob);
end;
Fstr.Free;


А получить содержимое так:

if SaveDialog.Execute then
   TBlobField(fmMainQuery.FieldByName('FileAtach')).SaveToFile(SaveDialog.FileName);


Соловьев   (2004-03-05 13:55:00) [3]

F1 - TBlobField.LoadFromStream


kalliopiy   (2004-03-05 13:50:00) [4]

А как лучше? Подскажите, пожалуйста.


Johnmen   (2004-03-05 13:36:00) [5]

Впечатление тебя обманывает...
Такие вставки делаются через параметры запроса.
И причем здесь BLOB ? С блобами работают совсем не так...


Наверх

Титульная страница Поиск, карта сайта Написать письмо