Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизBLOB-поле Найти похожие ветки
← →
kalliopiy © (2004-03-05 13:30) [0]Здравствуйте!
Возникли проблемы при попытке добавления записи в таблицу с 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.
У меня складывается такое впечатление, что это происходит из-за того, что считываемый и сохраняемый в поле БД файл слишком велик. Но сохранять-то его как-то надо! А как?
← →
Johnmen © (2004-03-05 13:36) [1]Впечатление тебя обманывает...
Такие вставки делаются через параметры запроса.
И причем здесь BLOB ? С блобами работают совсем не так...
← →
kalliopiy © (2004-03-05 13:50) [2]А как лучше? Подскажите, пожалуйста.
← →
Соловьев © (2004-03-05 13:55) [3]F1 - TBlobField.LoadFromStream
← →
Tlank (2004-03-05 17:31) [4]Через хранимую процедуру можно передать параметр:
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);
← →
Soft © (2004-03-06 05:29) [5]Вот простой пример
Query.SQL.Clear;
Query.SQL.Add("insert into ***");
Query.ParamByName("поле").LoadFromFile("имя файла",ftBlob);
Query.ExecSQL;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c