Table x ClientDataSet

27/12/2005

1

Estamos trocando, em um sistema, tables por CDS. No entanto, em uma rotina esta troca fez com que o tempo de importação aumenta-se.

Estou importando um arquivo txt, onde cada linha é consultada na tabela para verificar se será efetuado um insert ou edit. Já efetuei applyupdates a cada registro ou no final do processo, e esta função é a mais demorada.

Veja as alterações:

Table -> ClientDataset
Setkey -> Findkey
Post -> Post e Applyupdates.

Banco: SQLServer
Acesso: BDE

Applyupdates leva quase 2/3 do tempo total da rotina.

Alguma sugestão?

Obrigada


Responder

Posts

27/12/2005

Cesarpir

Amigo drigues tb tive problemas semelhantes quando tive que importar dados de um dbf por exemplo para firebird, não sei o banco que vc usa, mas no meu caso a importação seria executada somente uma vez é necessário dizer isto, para não demorar muito e ganhar um certo tempo dentro do banco eu criei uma tabela temp e nela eu ia gravando registro por registro do dbf, tinha um complicador que este dbf se distribuia em outras tabelas, criei uma trigger no before insert que fazia isto para mim.
Agora se não puder fazer algo semelhante ou tipo não poderá trocar o código, pois não sei a dimensão disto, peço desculpas.
Em outro sistema o que fiz foi gerar um txt lendo tb de um dbf e gerando insert into para cada registro e executei como script no ibexpert.
Resumindo mudei completamente a forma do raciocinio, pois realmente applyupdates em determinados casos ´importação´ demora mesmo.

Espero que de alguma forma te de uma luz e possa ter te ajudado.

Abraços

César


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira