ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Limitar o Numero de Registro

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
andersonred1
Novato
Novato


Registrado: Segunda-Feira, 12 de Março de 2007
Mensagens: 10

MensagemEnviada: Sex Nov 16, 2007 10:41 am    Assunto: Limitar o Numero de Registro Responder com Citação

Ola pessoal

Tenho feito algumas importações do excel para o banco sql, mais as planilhas de excel que estou importando tem mais de 5000 linhas cada uma.
A estrutura do meu banco esta assim:
Tabela MestreOS
Tabela ItenOS

Na tabela MestreOS existe o idmestre e idcliente
Na tabela ItenOS existe o id mestre e varios item do cliente

Cada planilha importada gera um codigo na tabela MestreOS e todos os item vão para a tabela ItenOS com o idmestreOS.

E esta ficando muito pesado, quando vou tentar editar algum registro depois de importado.

Gostaria de quebar essa importação em varios itens mestre.

De uma mesma planilha a cada 20 linhas gerar um idmestreOS diferente, e consequentemente atribuir cada novo idmestreOS os ItenOS.



Código:
procedure TFormExcel.BtnSalvarClick(Sender: TObject);
var
 contador,  passou:integer;
 auxT: string;
begin

  DBGridOriginal.Visible:=False;
  FormExcel.Update;
  TabSheet2.Show;
  // oculta cursor
  //MouseShowCursor(False);

  if (rxitens.RecordCount = 0) then
    begin
    DisplayError('Não existe dados a serem importados, selecione uma planilha',True,'Erro ');
    DBGridOriginal.Visible:=true;
    exit;
    end;

  passou:=0;
  contador:=0;
  strpesquisa:='select * from itemos where idordem=0';
  dm.ZItensOS.Close;
  dm.ZItensOS.SQL.Clear;
  dm.ZItensOS.SQL.Add(strpesquisa);
  dm.ZItensOS.Open;
  dm.ZItensOS.First;

  rxitens.First;

  while not rxitens.EOF do
  begin
    strpesquisa:='select * from itemos where idrodovia='+rxitensidrodovia.Text;
    strpesquisa:=strpesquisa+' and idservico='+rxitensidservico.Text;
    strpesquisa:=strpesquisa+' and idfornecedor='+rxitensidfornecedor.Text;

    dm.ZItensOS.Close;
    dm.ZItensOS.SQL.Clear;
    dm.ZItensOS.SQL.Add(strpesquisa);
    dm.ZItensOS.Open;
    dm.ZItensOS.First;

    if (dm.ZItensOS.RecordCount > 0) then
      begin
          MouseShowCursor(True);
        if Application.MessageBox('Os dados já estão cadastrados no BANCO DE DADOS' + #13#10 +
          'Deseja substituir?',Pchar(FormPrincipal.Empresa), 36)= 6 then
          passou:=1; //edição
          MouseShowCursor(False);
      end else
          passou:=0;


   if (passou=0) then  //INCLUSAO
    begin
    if (contador = 0) then
      begin
         strpesquisa:='select * from mestreos where id=0';
         dm.ZMestreOs.Close;
         dm.ZMestreOs.SQL.Clear;
         dm.ZMestreOs.SQL.Add(strpesquisa);
         dm.ZMestreOs.Open;
         dm.ZMestreOs.First;

         dm.ZMestreOs.Append;
         dm.ZMestreOsidcliente.Value:=1;
         dm.ZMestreOsdatalacto.Value:=date;
         dm.ZMestreOs.Post;
         dm.trans.Commit;

         strpesquisa:='select * from mestreos';
         strpesquisa:=strpesquisa + ' order by id';
         dm.ZMestreOs.Close;
         dm.ZMestreOs.SQL.Clear;
         dm.ZMestreOs.SQL.Add(strpesquisa);
         dm.ZMestreOs.Open;
         dm.ZMestreOs.Last;
      end;

    contador:=contador+1;

    dm.ZItensOS.Append;
    dm.ZItensOSidordem.Value:= dm.ZMestreOsid.Value;
    end;

   if (passou=1) then  //Edição
    begin
     dm.ZItensOS.Edit;
    end;

    dm.ZItensOSidfornecedor.Value:= rxitensidfornecedor.Value;
    dm.ZItensOSidservico.Value:= rxitensidservico.Value;
    dm.ZItensOSidrodovia.Value:= rxitensidrodovia.Value;

    dm.ZItensOS.Post;
    rxitens.Next;
  end;
  dm.trans.Commit;

  DBGridOriginal.Visible:=True;
  TabSheet1.Show;
  Showmessage('Ordens exportadas para o BANCO DE DADOS com sucesso.');

end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB