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

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

Как установить размер Blob поля в Access? [D7, Access]


CKC ©   (2006-05-04 12:43:00) 

Из Delphi создаю Access файл, создаю в нем таблицу с Blob (Ole) полем и пытаюсь положить в это поле файлы. Но все они обрезаются до 32 kb. Как установить нужный размер поля?

Вот на всякий случай используемый код:

var
DBEngine, Workspace: Variant;
db, td, recordset, recordset_f: Variant;
const
dbLangGeneral = ';LANGID=0x0409;CP=1252;COUNTRY=0';
begin
DBEngine := CreateOleObject('DAO.DBEngine.36');
Workspace := DBEngine.Workspaces[0];
Workspace.CreateDatabase('test', dbLangGeneral, EmptyParam);
db := DBEngine.OpenDatabase('test');

td := db.CreateTableDef('tbl1', 0, '', '');
td.Fields.Append(td.CreateField('fld1',arrMDBTypes[ftBlob]));
....


Johnmen   (2006-05-04 15:59:00) [1]


> сначала сохранить файл из этого блоба на диске,


Приведи код.


> с диска вложить его в таблицу access


Приведи код.


CKC   (2006-05-04 15:51:00) [2]

Выбралось из таблицы бд на sql server'е :) с ним все нормально, оно из программы замечательно отображается ( в смысле документы которые в нём находятся открываются)
я только что провела эксперимент, если сначала сохранить файл из этого блоба на диске, а потом с диска вложить его в таблицу access , то почему-то всё работает... оставлю пока так.


Сергей М.   (2006-05-04 15:24:00) [3]

рассказывай, откуда и как взялось qryDoccontent.Value


CKC   (2006-05-04 15:03:00) [4]

да я пропустила просто, вот так на самом деле. это не важно. проблема-то не в этом. когда access файл ручками создаёшь, всё норамльно в него записывается, а когда программно, то blob обрезается. может параметр какой надо указать при создании?

recordset := db.OpenRecordset(test', EmptyParam);
recordset.AddNew;
recordset.Fields[0].Value := qryDoccontent.Value; //qryDoccontent - это blob поле в TDataSet
recordset.Update(dbUpdateRegular, False);// где dbUpdateRegular=1


Сергей М.   (2006-05-04 14:21:00) [5]


> CKC ©   (04.05.06 13:55) [4]


Ну и где у тебя вызов метода Recordset.Edit или Recordset.AddNew ?


CKC   (2006-05-04 13:55:00) [6]

recordset := db.OpenRecordset(test', EmptyParam);
recordset.Fields[0].Value := qryDoccontent.Value; //qryDoccontent - это blob поле в TDataSet
recordset.Update(dbUpdateRegular, False);// где dbUpdateRegular=1


Сергей М.   (2006-05-04 13:45:00) [7]


> пытаюсь положить в это поле файлы


Показывай как пытаешься..


CKC   (2006-05-04 12:56:00) [8]

Так нет никаких компонентов. COM объект делаю 'DAO.DBEngine.36'.


Desdechado   (2006-05-04 12:47:00) [9]

компоненты доступа?


Наверх

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