Página 1 de 1

Usando Browse com SQL

Enviado: 08 Abr 2021 08:34
por Itamar M. Lins Jr.
Olá!
Como vocês estão fazendo para gravar uma linha do browse direto via SQL ?

Saudações,
Itamar M. Lins Jr.

Usando Browse com SQL

Enviado: 08 Abr 2021 10:58
por JoséQuintas
Itamar M. Lins Jr. escreveu:Como vocês estão fazendo para gravar uma linha do browse direto via SQL ?
Imagino que queira dizer: como atualizar o browse com a inclusão
Como o uso é eventual, em poucos módulos, faço um novo select, ou inclusão manual no browse, depende do caso.

A gravação no SQL segue o normal.

Usando Browse com SQL

Enviado: 08 Abr 2021 11:14
por Itamar M. Lins Jr.
Olá!
Uma das vantagens do DBF é atomicidade. Grava direto neste caso, até com LetoDbf.
Usando ADO/SQL... Como fazem para uma edição de célula do Browse Pai->Filho ?
Vou precisar criar mais um botão (salvar) ? No DBF não precisa.
No Hwgui usando browse pode ser mais simples "On Update" depois da edição da célula.

Código: Selecionar todos

@ 001,080 Browse oBrw ...;
On Update {|oBrw,nColPos| BrowseUpdate(oBrw,nColPos)} 
Vou usar o de sempre como está ai em cima.
Chamo a função BrowseUpdate(...) e dentro da função faço um cSQL := 'UPDATE ...' etc...

Saudações,
Itamar M. Lins Jr.

Usando Browse com SQL

Enviado: 08 Abr 2021 13:07
por JoséQuintas
No browse, mesmo que não apareça em tela, tenho a ID do registro.
No Update, é só usar essa ID.

No SQL/ADO, mesma coisa, "update ... where id=nn"

No DBF geralmente está posicionado, porque o browse posiciona.

Aí é uma daquelas diferenças entre DBF ou não.
Se está navegando no browse..... precisaria realmente ficar movimentando a posição no registro?
Como estamos acostumados com DBF, achamos normal o browse ficar posicionando.
E em GUI? o grid fica posicionando? geralmente não, pra não perder velocidade...

Então... trata-se de uma mudança na forma de pensar.
Podemos achar normal porque DBF é assim, podemos achar anormal porque no resto não é assim.

É por isso que as LIBs gráficas acabam criando grids/browses diferentes pra cada tipo de base de dados, pra deixar algo facilitado para o usuário conforme a base de dados. E é nisso que elas acabam perdendo velocidade ou recurso, porque deixam preso a alguma coisa.

No VB era vinculado a ADO, no Harbour é vinculado a DBF, mas tem as exceções.
No VB tinha o Flexgrid independente de base de dados, no Harbour tem o tbrowse que pode ter skipblock(), etc. modificados conforme a base.