Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

paulo.vidica

Delphi 2007 - Lendo arquivos Excel (xlsx) extensos e gravando dados no

Recommended Posts

Olá pessoal.

 

Estou trabalhando em uma solução, com Delphi 2007 e SQL Server, onde é preciso ler uma planilha Excel, formato XLSX, onde há um extenso volume de dados e gravar os dados obtidos em uma tabela no SGBD SQL Server. A planilha em questão pode ter até 100.000 registros.

 

Algum de vocês tem experiência com este tipo de solução? Por questões de desempenho, o que é melhor utilizar? OLE? ADO? Há uma maneira de na versão 2007 do Delphi promover a inclusão dos registros em lote?

 

Para facilitar a análise, na solução o usuário tem uma interface (tela) que lhe permite escolher o arquivo Excel a ser importado. Escolhido o arquivo, é iniciado o processo de leitura do mesmo e gravação de cada registro em banco de dados. Meu problema agora é desempenho/performance. Criei o processo para leitura e gravação em banco, usando OLE, e o desempenho não atende as expectativas dos usuários.

 

Alguém pode me ajudar? Há exemplos que podem ser compartilhados?

 

Muito agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por biza
      Boa tarde, 
      tenho um problema com VBA, que gostaria que me ajudassem a resolver, pretendo com recurso a código em VBA agregar os dados  de forma a que eles sejam somados.
      Em baixo, existe uma imagem , com o exemplo do pretendido. A esquerda a tabela que possui os dados de forma massiva e a direita o pretendido.
      Será que alguém me pode auxiliar a resolver isto!
      Obrigado.

    • Por FabianoSouza
      Preciso corrigir o erro "Somente uma expressão pode ser especificada na lista de seleção quando a subconsulta não é introduzida com EXISTS." da minha consulta.
      SELECT TA.titulo AS 'Trilha' , (SELECT CAST(ROUND((Comportamental * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Comportamental ,CAST(ROUND((Técnico * 100.0) / (Comportamental + Técnico), 2) AS DECIMAL(5,1)) AS Técnico FROM ( SELECT SUM(CASE WHEN dbo.tabB.enfoque = '1' THEN 1 ELSE 0 END) AS Comportamental, SUM(CASE WHEN dbo.tabB.enfoque = '2' THEN 1 ELSE 0 END) AS Técnico, COUNT(*) AS Total FROM dbo.tabB ) tab ) FROM dbo.tabA AS TA Nessa consulta, preciso trazer o título (da tabA) e o resultado de um cálculo feito na subconsulta, nos campos Comportamental e Técnico.
    • Por rsnow
      Bom dia a todos;
      Estou com problema na leitura de um arquivo .CSV, 
      a coluna que contém número de CNPJ está vindo convertido em notação científica e não estou conseguindo converter para numeração correta
      Ex: 3,04918E+12
      eu quero mostrar o valor que se encontra convertido que no caso é 3049181000139
      porém faço isso manual no próprio excel e isso se torna muito trabalhoso toda vez.
       
      alguma luz?

    • Por JoãoNeto2
      Eu estava usando um programa em PHP que conectava e lia um banco de dados SQL Server. Do nada ele parou de funcionar apresentando a seguinte mensagem :
      O cliente não pode estabelecer conexão porque foi encontrado um erro durante os handshakes anteriores ao logon. As causas comuns incluem a tentativa do cliente de conectar-se a uma versão sem suporte do SQL Server, o servidor muito ocupado para aceitar novas conexões ou uma limitação de recursos (memória ou máximo de conexões permitidas) no servidor.
      Algumas informações para esclarecer :
      1-Consigo conectar o banco via Dbeaver da própria máquina que o programa PHP deixou de funcionar
      2-De outra máquina consigo conectar esse mesmo banco com o mesmo programa PHP
      3-Essa mesma máquina conecta outro banco SQL Server de outro cliente
      Ou seja, o mesmo programa conecta o mesmo banco mas de outra máquina e a mesma máquina consegue conectar outro banco SQL.
      O que pode ser?
    • Por fideles
      Caros,
       
      Tenho 6 inputs para preencher que recebo como base uma planilha em Excel, tenho que fazer manualmente cada coluna no seu respectivo input, alguém já tentou ou sabe se tem alguma forma de copiar a linha do Excel e jogar nos inputs? Ou seja, ao copiar a linha do Excel, ele joga as 6 colunas com os resultados dentro dos inputs. 
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.