Bom , provavelmente o problema está aqui: client_ole2.add_arg(args, 'C:Ora.prn'); ... client_ole2.invoke(workbook, 'Save As', args);
Mas é só um palpite.... -- Rafael Alexandre Schmitt [EMAIL PROTECTED] || www.hbtec.com.br Blumenau - Santa Catarina ----- Original Message ----- From: Tathyanna Pelegrinni To: [EMAIL PROTECTED] ; [email protected] Sent: Wednesday, May 09, 2007 12:30 PM Subject: [oracle_br] Oracle Forms - ler informação de um excel Gente, O q é este erro "305500: non-ORACLE exception" ???? Fiz o seguinte procedimento (veja abaixo) e dá essa messagem. Algúem pode me ajudar? Exemplo: PROCEDURE EXCEL(P_NOME_ARQ IN VARCHAR2, P_COLUNA_UM IN CHAR, P_COLUNA_DOIS IN CHAR, P_LINHA_INICIO IN NUMBER ) IS -- DELCARACAO DE VARIAVEIS DO TIPO OLE2 ( PACOTE MICROSOFT ) application client_ole2.obj_type; workbooks client_ole2.obj_type; workbook client_ole2.obj_type; worksheet client_ole2.obj_type; cell client_ole2.obj_type; COLUNAS NUMBER(02); args client_ole2.list_type; Check_file client_text_io.file_type; WRK_LINHA_FIM NUMBER; --DECLARACAO DE VARIAVEIS E EXCEPTIONS no_file exception; PRAGMA exception_INIT(no_file, -302000); cell_value varchar2(2000); x number :=0; -- variavel para verificar 1º registro da coluna dois y number:=1; --variavel de controle BEGIN -- VERIFICA EXISTENCIA DO ARQUIVO Check_file := CLIENT_TEXT_IO.FOPEN(P_NOME_ARQ, 'R'); CLIENT_TEXT_IO.FCLOSE(Check_file); application := client_ole2.create_obj('Excel.Application'); workbooks := client_ole2.get_obj_property(application, 'Workbooks'); --Abrir arquivo requerido em workbook go_ITEM('PREVIEW_IMPORTED_COST.W_REF_NUM'); args := client_ole2.create_arglist; client_ole2.add_arg(args, P_NOME_ARQ); --endereco ou parametro do arquivo desejado workbook := client_ole2.invoke_obj(workbooks, 'Open', args); client_ole2.destroy_arglist(args); -- Abrir a folha (planilha) desse workbook args := client_ole2.create_arglist; client_ole2.add_arg(args, 'PLAN1'); worksheet := client_ole2.get_obj_property(workbook, 'Worksheets', args); client_ole2.destroy_arglist(args); -- RECUPERA DADOS DAS CELULAS DO ARQUIVO args := client_ole2.create_arglist; --LEITURA DE LINHAS E COLUNAS DE ACORDO COM OS PARAMETROS FORNECIDOS for j in 1..2 loop -- recebe coluna digitada if y = 1 then y := p_coluna_um; else y := p_coluna_dois; end if; for i in P_LINHA_INICIO..65536 loop client_ole2.add_arg(args, i); client_ole2.add_arg(args, y); cell:= client_ole2.get_obj_property(worksheet, 'Cells', args); client_ole2.destroy_arglist(args); args:= client_ole2.create_arglist; --IDENTIFICA SE É NUMERO OU VARCHAR ( DEFAULT NÚMERO ) cell_value := client_ole2.get_num_property(cell,'Value'); if cell_value = 0 then cell_value := client_ole2.get_char_property(cell,'Value'); end if; --VERIFICA DADOS NULOS IF CELL_VALUE IS NULL THEN EXIT; END IF; --POPULA AS COLUNAS if y = p_coluna_um then :PREVIEW_IMPORTED_COST.W_REF_NUM := cell_value; message (cell_value); --POPULA COLUNA DESCR /* BEGIN SELECT MRC.DESCR INTO :PREVIEW_IMPORTED_COST.DESCR from merc mrc, fornitura fnt where fnt.referencia = :PREVIEW_IMPORTED_COST.W_REF_NUM AND FNT.FORN_NUM = :CONTROLE.FORN_NUM AND FNT.FORNITURA_NUM = MRC.merc_num; exception when no_data_found then :PREVIEW_IMPORTED_COST.descr := ' '; END;*/ elsif y = p_coluna_dois then x := x + 1; if x = 1 then first_record; end if; -- :PREVIEW_IMPORTED_COST.W_CUST := cell_value; end if; NEXT_RECORD; end loop; --condicao para retornar ao loop de coluna if j = 1 then y :=2; else y:=3; end if; END LOOP; first_record; --DESTROI AS VARIAVEIS args := client_ole2.create_arglist; client_ole2.add_arg(args, 'C:Ora.prn'); client_ole2.add_arg(args, 'Formatted text(Space delimited)(*.prn)|*.prn|'); client_ole2.invoke(workbook, 'Save As', args); client_ole2.destroy_arglist(args); client_ole2.invoke(application, 'Quit'); -- LIBERANDO AS VARIAVEIS DO TIPO OLE ( PACOTE MICROSOFT) client_ole2.release_obj(cell); client_ole2.release_obj(worksheet); client_ole2.release_obj(workbook); client_ole2.release_obj(workbooks); client_ole2.release_obj(application); go_ITEM('PREVIEW_IMPORTED_COST.W_REF_NUM'); exception --TRATAMENTO DE ERRO, CASO NÃO ENCONTRE O ARQUIVO WHEN no_file THEN message('File Doesn`t exists'); go_item('PREVIEW_IMPORTED_COST.SPREADSHEET'); --DESabilita('PREVIEW_IMPORTED_COST.W_REF_NUM'); -- DESabilita('PREVIEW_IMPORTED_COST.DESCR'); -- DESabilita('PREVIEW_IMPORTED_COST.W_CUST'); -- DESabilita('PREVIEW_IMPORTED_COST.IMPORT'); --QUALQUER OUTRO ERRO, EXIBE MSG WHEN OTHERS THEN MESSAGE(sqlerrm); END; [As partes desta mensagem que não continham texto foram removidas] ------------------------------------------------------------------------------ Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: McAfee VirusScan / Atualizado em 08/05/2007 / Versão: 5.1.00/5026 Proteja o seu e-mail Terra: http://mail.terra.com.br/ [As partes desta mensagem que não continham texto foram removidas]
