Всем привет друзья! У меня вопрос связанный с выводом БД access в excel.Пытаюсь вывести таким образом:
Код:
procedure TForm2.Button3Click(Sender: TObject);
var
XLapp, Sheet, Colum:Variant;
index,i:Integer;
begin
XLApp:= CreateOleObject('Excel.Application');
XLApp.Visible:=true;
XLApp.Workbooks.Add(-4167);
XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Columns;
Colum.Columns[1].ColumnWidth:=18;
Colum.Columns[2].ColumnWidth:=18;
Colum.Columns[3].ColumnWidth:=18;
Colum.Columns[4].ColumnWidth:=18;
Colum.Columns[5].ColumnWidth:=18;
Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Rows;
Colum.Rows[2].Font.Bold:=true;
Colum.Rows[1].Font.Bold:=true;
Colum.Rows[1].Font.Color:=clBlue;
Colum.Rows[1].Font.Size:=10;
Colum.Rows[2].Font.Size:=10;
Colum.Rows[3].Font.Size:=10;
Colum.Rows[4].Font.Size:=10;
Colum.Rows[5].Font.Size:=10;
Colum.Rows.Font.Name:=' MS Sans Serif';
Sheet:=XLApp.Workbooks[1].WorkSheets['Отчёт'];
Sheet.Cells[1,2]:='"Найденные прототипы на Фипс.ру" '+DateToStr(Date);
Sheet.Cells[2,1]:='ID';
Sheet.Cells[2,2]:='Информация о прототипе';
Sheet.Cells[2,3]:='Дата';
Sheet.Cells[2,4]:='Идентификатор патента';
index :=3;
datasource1.DataSet.First;
for i:=0 to datasource1.DataSet.RecordCount-1 do
begin
Sheet.Cells[index,1]:= datasource1.DataSet.Fields.Fields[0].AsString;
Sheet.Cells[index,2]:= datasource1.DataSet.Fields.Fields[1].AsString;
Sheet.Cells[index,3]:= datasource1.DataSet.Fields.Fields[2].AsString;
Sheet.Cells[index,4]:= datasource1.DataSet.Fields.Fields[3].AsString;
Sheet.Cells[index,5]:= datasource1.DataSet.Fields.Fields[4].AsString;
Inc(index);
datasource1.DataSet.Next;
end;
Но выдается ошибка "
Недостаточно памяти для завершения операций".
Думаю что проблема в том что в бд access у меня есть поле memo в котором находятся много текстовой информации, а всего записей у меня около 50. Отсюда и вытекает недостаток памяти. Но не могу понять какой именно памяти не хватает, оперативной? И как можно обойти это?
Заранее спасибо!