andersonred1 Novato

Registrado: Segunda-Feira, 12 de Março de 2007 Mensagens: 10
|
Enviada: Sex Nov 16, 2007 10:41 am Assunto: Limitar o Numero de Registro |
|
|
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;
|
|
|