Simplesmente não faz sentido, um browse em array, dar erro por problema de rede.Itamar M. Lins Jr. escreveu:Mas fica ai procurando, quem sabe é outra coisa mesmo. Quem tem tempo pra isso, é até interessante para todos nós, acharmos o problema em definitivo.
Conflito entre Harbour e tbrowse.prg externo
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Harbour maluco ????
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
Tem um STOP ali... Olha direito, manda REFRESH...
Não tem nada a ver com Harbour isso.
Quando estava "lendo/esperando" alguma coisa que vinha da REDE deu erro.
Saudações,
Itamar M. Lins Jr.
Tem um STOP ali... Olha direito, manda REFRESH...
Não tem nada a ver com Harbour isso.
Quando estava "lendo/esperando" alguma coisa que vinha da REDE deu erro.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
Mesma coisa aqui:
Itamar M. Lins Jr.
Mesma coisa aqui:
Saudações,Error BASE/1302 Object destructor failure: Reference to freed block
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
Saudações,
Itamar M. Lins Jr.
SQL vem do "CÉU, do espaço sideral" e DBF vem do DISCO voador.Faltou dizer: e não é DBF.... não tem acesso nem mesmo a disco durante o browse.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Harbour maluco ????
Itamar M. Lins Jr. escreveu:SQL vem do "CÉU, do espaço sideral" e DBF vem do DISCO voador.
No tipo de conexão que eu uso, vém tudo de uma vez.adOpenStatic = este cursor efetua uma copia do banco como se fosse uma foto (snapshot).
Durante o browse não há acesso à rede.
E mesmo assim, a rede é virtual, sem ligação física.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
No meu entender, uma cópia estática, não significa que VIERAM do servidor p/ estação todos os REGISTROS, significa que SEPAROU em algum LUGAR os registros da sentença.
adOpenStatic 3, eu entendo que o RS é ESTATICO tudo que for alterado, copiado, não é refletido na BASE DE DADOS. Dai entender que veio tudo p/ a estação são outros 500. Porquê a cópia pode ser dentro da base do servidor, um arquivo TMP por exemplo "TEMPORARY" dentro do próprio servidor.
Saudações,
Itamar M. Lins Jr.
Ainda preciso de mais informações p/ acreditar nisso. Até agora o que tenho lido não diz isso que vc está afirmando.No tipo de conexão que eu uso, vém tudo de uma vez.
Código: Selecionar todos
adOpenStatic 3 Uses a static cursor. A static copy of a set of records that you can use to find data or generate reports. Additions, changes, or deletions by other users are not visible.Que importa isso ? Falha é falha! Pode ser inclusive do ADO.E mesmo assim, a rede é virtual, sem ligação física.
No meu entender, uma cópia estática, não significa que VIERAM do servidor p/ estação todos os REGISTROS, significa que SEPAROU em algum LUGAR os registros da sentença.
adOpenStatic 3, eu entendo que o RS é ESTATICO tudo que for alterado, copiado, não é refletido na BASE DE DADOS. Dai entender que veio tudo p/ a estação são outros 500. Porquê a cópia pode ser dentro da base do servidor, um arquivo TMP por exemplo "TEMPORARY" dentro do próprio servidor.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
ADO pega...
ADO Close...
browse() é isso ?
Saudações,
Itamar M. Lins Jr.
Como você pode afirmar isso ? Nunca vi isso. Esta fechado a conexão ?Durante o browse não há acesso à rede.
ADO pega...
ADO Close...
browse() é isso ?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
Lendo na internet sobre o assunto. -> adOpenStatic-vs-adOpenDynamic-vs-adOpenForwardOnly
ENTENDEU AI PAPUDO!
Saudações,
Itamar M. Lins Jr.
Lendo na internet sobre o assunto. -> adOpenStatic-vs-adOpenDynamic-vs-adOpenForwardOnly
Código: Selecionar todos
É uma propriedade específica do conjunto de registros. As opções são do lado do servidor e do cliente ... Cada uma delas tem algumas características exclusivas ... O que você pode considerar é ajustar seu CacheSize .. Que define o número de registros retornados no conjunto de registros em um determinado momento. A coisa boa sobre isso é que quando você atinge o limite do cache, o cursor busca o próximo lote de registros ... Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
Olha ai mais essa.
https://social.msdn.microsoft.com/Forum ... ll-records
Saudações,
Itamar M. Lins Jr.
Olha ai mais essa.
Código: Selecionar todos
Infelizmente, o problema é que, apesar do valor que defini para CacheSize, quando o conjunto de registros é aberto, ele não carrega todos os registros na memória. Isso é uma preocupação, pois algumas operações em cada registro no aplicativo cliente podem demorar um pouco ou até mesmo bloquear a espera pela entrada do usuário. Enquanto isso ocorre, isso mantém bloqueios nas tabelas do SQL Server até que leiamos todos os registros.
Tentei definir CacheSize para ver se carregaria tudo de uma vez, mas sem sucesso.
Como todas as peças parecem estar aqui, não entendo muito bem por que o cursor do lado do servidor não pode simplesmente carregar tudo na memória em segundo plano da mesma forma que o cursor do lado do cliente (estático) faz.
Tentei algumas das propriedades dinâmicas do conjunto de registros (como Máximo de registros abertos, que é somente leitura) sem sucesso.Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Harbour maluco ????
Entendi.Itamar M. Lins Jr. escreveu:ENTENDEU AI PAPUDO!
Quem usa DIFERENTE DE MIM pode ter problema de rede.
Eu uso do lado do cliente
AdUseClient, e AdUseStatic
Assim sempre vém tudo, não tem nada disso de cache e afins pra dar problema.
retirado do texto que postou:
não entendo muito bem por que o cursor do lado do servidor não pode simplesmente carregar tudo na memória em segundo plano da mesma forma que o cursor do lado do cliente (estático) faz.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Harbour maluco ????
Ajudou a encontrar um método interessante
https://docs.microsoft.com/pt-br/sql/ad ... rver-ver15
Não sei se vou usar isso, mas é interessante.
E voltando ao anterior: o texto menciona sobre atualizar em segundo plano
NÃO sei dizer.... se o Harbour espera que tudo chegue ou se já sai usando antes de chegar toda informação.
Seria uma possibilidade, muito estranha, mas seria.
https://docs.microsoft.com/pt-br/sql/ad ... rver-ver15
Com uma chamada do método Resync(), a consulta é atualizada.Este exemplo demonstra como usar o método Ressync para atualizar dados em um conjunto de registros estático.
Não sei se vou usar isso, mas é interessante.
E voltando ao anterior: o texto menciona sobre atualizar em segundo plano
NÃO sei dizer.... se o Harbour espera que tudo chegue ou se já sai usando antes de chegar toda informação.
Seria uma possibilidade, muito estranha, mas seria.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Harbour maluco ????
Aproveitando....
Como eu já disse por aqui, NÃO uso nada especial do ADO, NADA que deixe preso ao ADO, nem mesmo isso dele carregar aos poucos.
É comando SQL pra trazer as informações para o terminal, é comando SQL pra enviar informações para o servidor.
Nada disso de cache, de atualização em batch, etc.
Assim posso trocar de ADO pra qualquer outra coisa, caso seja necessário.
A única coisa "diferente" que uso dele, é o fato dele retornar as informações em formato de recordset ADO.
Poderia até trocar os DBFs restantes pra recordset ADO, salvos em disco, mas não quero isso.
Quero ficar preso somente a comandos SQL, e nada mais.
Mas se o browse é encima do formato desse recordset, nada impede de usar recursos do recordset.
Acaba sendo parecido com array, a diferença é que ele fica no Windows e não no aplicativo.
Como eu já disse por aqui, NÃO uso nada especial do ADO, NADA que deixe preso ao ADO, nem mesmo isso dele carregar aos poucos.
É comando SQL pra trazer as informações para o terminal, é comando SQL pra enviar informações para o servidor.
Nada disso de cache, de atualização em batch, etc.
Assim posso trocar de ADO pra qualquer outra coisa, caso seja necessário.
A única coisa "diferente" que uso dele, é o fato dele retornar as informações em formato de recordset ADO.
Poderia até trocar os DBFs restantes pra recordset ADO, salvos em disco, mas não quero isso.
Quero ficar preso somente a comandos SQL, e nada mais.
Mas se o browse é encima do formato desse recordset, nada impede de usar recursos do recordset.
Acaba sendo parecido com array, a diferença é que ele fica no Windows e não no aplicativo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
Leu e entendeu da sua CABEÇA, não é isso que diz o texto.
Diz que CARREGA TUDO DO LADO CLIENTE, RESPEITANDO O CACHESIZE!
E mais!
Se não entendeu existem 2 PONTEIROS(CURSOR) síncrono ou assíncrono um do lado CLIENTE e outro do lado do SERVIDOR.
O texto diz mais ainda. A conexão está ATIVA a REDE está LIGADA. Existe um processo TCP ligando CLIENTE/SERVIDOR.
Não viu isso no texto não ?
Lê ai!
SERVER-SIDE e CLIENT-SIDE tá vendo ai ?
Saudações,
Itamar M. Lins Jr.
Quer dizer que quando não faz referência ao CacheSize ele não assume o valor padrão e deixa de existir, rsrsrsrsrs tem doido pra tudo mesmo.Nada disso de cache,
Leu e entendeu da sua CABEÇA, não é isso que diz o texto.
Diz que CARREGA TUDO DO LADO CLIENTE, RESPEITANDO O CACHESIZE!
E mais!
Código: Selecionar todos
using adAsyncFetch and adAsyncExecute to load things in the background when necessary.O texto diz mais ainda. A conexão está ATIVA a REDE está LIGADA. Existe um processo TCP ligando CLIENTE/SERVIDOR.
Não viu isso no texto não ?
Lê ai!
Código: Selecionar todos
Since all the pieces seem to be here, I don't quite understand why the server-side cursor can't simply load everything into memory in the background the same way the (static) client-side cursor does.Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
Resumindo, só vai tá ai na estação se copiar tudo da sentença para algum lugar no HD/RAM e fechar a conexão.
Se a conexão está aberta, existe possibilidade de erro na REDE. Virtual ou não.
Saudações,
Itamar M. Lins Jr.
Resumindo, só vai tá ai na estação se copiar tudo da sentença para algum lugar no HD/RAM e fechar a conexão.
Se a conexão está aberta, existe possibilidade de erro na REDE. Virtual ou não.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Harbour maluco ????
Olá!
Ai o cachesize que vc acreditava que vinha tudo p/ cliente, na verdade só vem 1.
Saudações,
Itamar M. Lins Jr.
Ai o cachesize que vc acreditava que vinha tudo p/ cliente, na verdade só vem 1.
E vc pensando que tinha vindo tudo.The default value for this property is 1. This means that only one record is fetched and cached at a time. For large databases, this is not efficient. A larger value will speed up operations, but remember that cached records may not show recent changes made to the database. To avoid this you can call the Resync method regularly, which will update the cache.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.