Clique abaixo para nos ajudar
Login

Esqueci minha senha

Estamos no Facebook
Buscar
 
 

Resultados por:
 


Rechercher Busca avançada

Quem está conectado
11 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 11 Visitantes :: 1 Motor de busca

Nenhum

[ Ver toda a lista ]


O recorde de usuários online foi de 468 em 1/3/2012, 10:43
Últimos assuntos
USAR REPORT FORM

30/12/2016, 09:06 por AJC

Pessoal bom dia,
Estou com um grande problema, já pesquisei muita coisa sobre report form, mas o …

Comentários: 3

Impressora Ticket

15/11/2016, 09:20 por clima238

Bom dia,
Por favor alguém me explique porque o código abaixo imprime no ecrã em vez do printer: …

Comentários: 2

Visite meu canal no Youtube

20/1/2017, 00:45 por ImRicoh

VFP Unlimited


Comentários: 0

Bloquear edição do ListBox

17/6/2010, 15:13 por Julio

Pessoal

Boa Tarde!

Tnho uma listbox apenas para exibir o resultado.
Preciso bloquear a listbox …

Comentários: 17

automação do mozilla e chrome

15/1/2017, 12:16 por Handerson Mildroz

Boa tarde a todos!

Sou iniciante no VFP. Preciso de ajuda, pois tenho um código que usa o …

Comentários: 0

Estatísticas
Temos 6992 usuários registrados
O último usuário registrado atende pelo nome de BrenoTayne

Os nossos membros postaram um total de 10 mensagens em 4 assuntos

Lentidão - VFP9 -> Firebird

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Em curso Lentidão - VFP9 -> Firebird

Mensagem por alissonfigueiredo em 25/1/2011, 15:53

Pessoal, estou com problemas para inserir ou atualizar dados em uma tabela do
Firebird. Uma loop de 15.000 registro demora em torno de 4 a 6 minutos, tanto
para transaçao manual ou via Cursor Adapter. Ex:


Código:
store sqlstringconnect(pstringconexao) to conecta
lcomando=sqlsetprop(conecta, 'Transactions',2)
sele 1
use produto
go top
do while not eof()
store codigo to cod
store descricao to des
store preco to pre
lcomando=[ insert into propdv (codpro,despro,prepro) values]+ [ (
]+cod+[,']+des+[',]+transform(pre)+[)]
lcomando =sqlexec(conecta,comando)
if lcomando=1
sqlcommit(conecta)
else
sqlrollback(conecta)
endif
sele 1
skip
enddo
sqldisconnect(conecta)

por esse exemplo abaixo, tb fica lento

Código:
thisform.datanevironment.oconnection.begintrans()
sele 1
use produto
go top
do while not eof()
store codigo to cod
store descricao to des
store preco to pre
insert into propdv (codpro,despro,prepro) values ;
(cod,des,pre)
sele 1
skip
enddo
lctabela="ProPdv"
if tableupdate(0,.t.,lctabela)
thisform.dataenvironment.oconnection.commitrans()
else
thisform.dataenvironment.oconnection.rollbacktrans()
endif



Para um tabela com 100.000, 200.000 utilizando o comando update set .. where
.... demora uns 30 a 40 minutos ou mais.

O que posso fazer pagar agilizar a inserção de dados ou atualizacao?

Obrigado

Alisson Figueiredo
Varginha - Mg


alissonfigueiredo
Começando a Participar
Começando a Participar


Voltar ao Topo Ir em baixo

Em curso Re: Lentidão - VFP9 -> Firebird

Mensagem por Marcos Guedes em 25/1/2011, 17:06

Por que você está precisando alterar 15mil registros?
Qual a necessidade?
Talvez tenhamos outra dica que torne o processo menos demorado.

_________________
Marcos Guedes - Programador e desenvolvedor Web.


Visite o nosso portal:
[Você precisa estar registrado e conectado para ver este link.]

Marcos Guedes
Webmaster
Webmaster


Voltar ao Topo Ir em baixo

Em curso Re: Lentidão - VFP9 -> Firebird

Mensagem por alceu11 em 25/1/2011, 18:15

Realmente fazendo um teste de outra forma demora 3 segundos,,,
Imaginando ke demore 10 segundos para conectar,ao firebird.

so tire o Do while e coloquei um Scan,,,,,,,

Seria problema de memoria no servidor, ou pouca memoria na maquina,
ou quase nenhuma ?

Tem como testar esta rotina em outro equipamento, com mais memoria e processador.

O codigo que fiz so de piloto de prova.

Código:

Close Databases
Set Safety Off
*******gerando um arquivo com 15000 registros.....
Create Table teste1( codigo c(10) , descricao c(40), preco N(10,2))
wcod  =1
wdesc ='Produto '
valor =1
Select teste1

For i = 1 To 15000 
   Insert Into teste1 (codigo,descricao,preco) Values ( Alltrim(Str(wcod,6)), wdesc+Str(wcod), valor)
   wcod=wcod+1
   valor=valor+1
Next
*  BROWSE
Use In teste1  && fechei o arquivo
****************************

Create Table propdv( codpro c(10) , despro c(40), prepro N(10,2))

Sele 1
Use teste1
Go Top
If Not Eof()
Scan
*   Do While Not Eof()
      Store codigo To cod
      Store descricao To des
      Store preco To pre

      Insert Into propdv (codpro,despro,prepro) Values (cod,des,pre)
*      Sele 1
*      Skip
*   Enddo
ENDSCAN

Else
   Wait Window 'nao tem registros para esta operacao' Timeout 1
Endif

Select propdv
Browse Normal


Espero ter ajudado,,,,,,
,mais aqui foram apenas 5 segundos, sendo ke tive ke inserir, os 15 mil registros para teste.


alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Em curso Re: Lentidão - VFP9 -> Firebird

Mensagem por alceu11 em 26/1/2011, 08:44

Usando cursor adpater com Acess. ja ke como o firebird, nao consegui instalar
demorou menos de 30 segundos.
link do fonte. cusroadpater1
[Você precisa estar registrado e conectado para ver este link.]

alceu11
Usuário 5 Estrelas
Usuário 5 Estrelas


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo


 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum