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
Moderador: Moderadores
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Usando Browse com SQL
Imagino que queira dizer: como atualizar o browse com a inclusãoItamar M. Lins Jr. escreveu:Como vocês estão fazendo para gravar uma linha do browse direto via SQL ?
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.
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
Usando Browse com SQL
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.
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.
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)} Chamo a função BrowseUpdate(...) e dentro da função faço um cSQL := 'UPDATE ...' etc...
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
Usando Browse com SQL
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.
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.
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/