Доброго времени суток! Следующая проблема: Есть екселевский файлик, который хранится в БД в поле типа CLOB. Необходимо открыть этот файл для дальнейшего редактирования и просмотра. Делаю так:
| Код | procedure OpenPatternXLS(prmJob_id: Integer); var qurXML : TOracleDataSet ; TempPath : Array[0..255] of Char; SQLText, eMsg : string; sTempName : String; myFile : TextFile; Excel, Query : OleVariant; i, j, prmPattern : integer; CLOBQur :TOracleQuery; pTempName: PChar; begin
if prmJob_id <= 0 then exit;
SQLText := 'SELECT pattern, pat_name ' + ' FROM JOB '+ ' WHERE job_id = :JOB_ID ' ;
qurXML := OpenSQL( SQLText , eMsg , ['JOB_ID',prmJob_id ] );
sTempName := qurXML.fields[1].AsString ;
GetTempPath(255,TempPath);
try AssignFile(myFile, string(TempPath) + sTempName); ReWrite(myFile); writeln(myFile,qurXML.fields[0].asString); CloseFile(myFile); except UnivAsk(GB_OK,GetMSGText('$FileWriteError$', 1970, GROUP_MESSAGES, gbLANGUAGE) + ' "'+ string(TempPath) + sTempName+'".'+ #13#10+ GetMSGText('$AccessDenied$', 575, GROUP_MESSAGES, gbLANGUAGE)+'!', ''); qurXML.Free; exit; end;
qurXML.Free;
try try Excel := GetActiveOleObject('Excel.Application'); // проверяем, нет ли запущенного Excel except on EOLESysError do // если нет, то запускаем Excel := CreateOleObject('Excel.Application'); end; Excel := CreateOleObject('Excel.Application'); Excel.Visible := True; Excel.WorkBooks.Open( string(TempPath) + sTempName); // Открываем рабочую книгу Excel.WindowState := -4137; // Открывать Excel на полный экран Excel.DisplayAlerts := true; // показывать предупреждающие сообщения Excel.WorkSheets[1].Activate; // Становимся на первый лист
for i := 1 to Excel.Sheets.Count do begin Excel.WorkSheets[i].Columns.AutoFit; end;
finally Excel:= Unassigned; end;
end;
|
На строчке Excel.WorkBooks.Open срабатывает возникает ошибка Метод Open из класса WorkBooks завершен не верно.
|