Форум: "Базы";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
ВнизЗапись BLOB в Access используя TQuery Найти похожие ветки
← →
romano.ru (2002-04-11 20:32) [0]Может кто встречался с такой проблемой, помогите кто сможет...
есть таблица в MS Access:
T_DATA с полями
F0 - номер записи
F1 - текст
F2 - BLOB
нужно запихнуть картинку...
не мудрствуя лукаво делаю следующее:
Query1.SQL.Add("INSERT INTO T_DATA(F1,F2) VALUES(:F1, :F2)");
Query1.Params[0].AsString := Edit1.Text;
Query1.Params[1].LoadFromFile("<filename>", ftBlob);
Query1.ExecSQL;
При попытке выполнить происходит следующее:
если файл меньше 256 байт, то все прекрасно пишется в базу, если же файл больше - выдается ошибка
General SQL error
Слишком большая длина поля
Если пользовать TTable - проблемы нет, но по ряду причин нужно пользоваться только TQuery
Если кто встречался с этим глюком - раскажите, please, как с ним бороться!
← →
Aleksandr (2002-04-11 20:47) [1]Как-то совсем хитро... Тут могут и параметры ругаться, Variant тоже не резиновый... Не проще ли попробовать:
Query1.SQL.Add("SELECT * FROM T_Data");
Query1.Open;
Query1.Insert;
Query1.FieldByName("F1").AsString:=Edit1.AsString;
(Query1.FieldByName("F2") AS TBlobField).LoadFromFile(...);
Query1.Post;
если не покатит, что вряд ли, то загрузи файл в поток и сравни его размер с BlobSize поля... Может, он и в самом деле запредельный...
← →
romano.ru (2002-04-11 23:08) [2]Спасибо за ответ!
Все бы ничего, но при вызове методов Insert или Edit вылезает Exception:
Query1: Cannot modify a read-only dataset
:(
← →
roottim (2002-04-12 08:43) [3]хм!.. связка query+updatesql
и почему вариант.. надо явно указать параметру тип ftBlob
← →
romano.ru (2002-04-13 01:39) [4]Вопрос, к счастью, разрешился!
Проблема исчезла, как только я перенастроил алиас на работу через ODBC-драйвер.
Работает, правда, медленее, но зато работает :)
Народ, спасибо за участие!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.05.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c