Clipper On Line • Ver Tópico - TBROWSE

TBROWSE

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

TBROWSE

Mensagempor cjp » 03 Jan 2021 23:45

Sem dúvida seria muito mais fácil fazer isto pelo próprio select, se isso for possível, já que só preciso disso para alguns campos de apenas um select.
Entretanto, pesquisei bastante, e não achei nada que funcione como um padc no select.
Também fiz vários testes, como select center(campo) from tabela, com várias variantes.
Poderia me dizer como fazer isto diretamente no select?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

TBROWSE

Mensagempor alxsts » 04 Jan 2021 02:04

Olá!
JoséQuintas escreveu:Se servir, pode apenas alterar o SELECT pra trazer tudo pronto do jeito que quer.

Não pensei nisto mas, é um caminho, apesar de SQL servir para armazenar e recuperar dados e não para formatar dados. Mas, o tópico começou com TBrowse e foi para ADO / SQL. Confunde um pouco...
cjp escreveu:Poderia me dizer como fazer isto diretamente no select?

Não sei qual banco usa mas creio que todos tenham funções semelhantes de manipulação de strings. Até o DBF tem. Note que PadC() é uma combinação de PadR() com PadL() (ou vice-versa), todas estas funções xBase. Nos bancos de dados relacionais, PadL chama-se LPAD() e PadR() chama-se RPAD(). Não existe equivalente a PadC() pelo motivo colocado acima.

Segue exemplo usando MariaDB:

Capturar.JPG

Note que independentemente do tipo de dados do campo na tabela, o resultado no SELECT var ser string, e o mesmo vai ocorrer com a coluna do grid...
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

TBROWSE

Mensagempor JoséQuintas » 04 Jan 2021 10:12

alxsts escreveu: Note que PadC() é uma combinação de PadR() com PadL() (ou vice-versa),


Não sei como o resultado aí deu certo.
Considerando que PADR( "A", 20 ) deixa a string com 20 caracteres, porque acrescenta espaços pra ficar com 20 caracteres...
PADL( PADR( "A", 20 ), 20 ), retornaria a mesma coisa, já que a string com 20 caracteres não teria modificação...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18159
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

TBROWSE

Mensagempor cjp » 04 Jan 2021 10:53

Uso banco de dados MySQL, com MariaDB.

Aqui não funcionou. Dá erro de incorreto número de argumentos na LPAD. Veja o anexo.

Pesquisei a LPAD(), parece que ela não serve para o que pretendo. Veja: https://www.w3schools.com/sql/func_mysql_lpad.asp
Anexos
tela.png
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

TBROWSE

Mensagempor alxsts » 04 Jan 2021 14:50

Olá!
cjp escreveu:Uso banco de dados MySQL, com MariaDB.

Não entendi. Ou usa um ou outro. Apesar de o MariaDB ser oriundo do MySQL, são ferramentas diferentes...

A resposta está no link que você mesmo postou:

Capturar.JPG

Na versão do MariaDB que usei acima (10.5.8-MariaDB), o terceiro parâmetro não é obrigatório mas é obrigatório na versão que você usou (não sei se MySQL ou MariaDB).

Acrescente na tua consulta um terceiro parâmetro, tanto na LPAD() quanto na RPAD(). Pode ser um ' ' (espaço em branco) para o preenchimento.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

TBROWSE

Mensagempor cjp » 04 Jan 2021 22:51

Quis dizer que uso o MySQL, usando o conector do MariaDBF.

Eu entendi no link que postei que faltaria um parâmetro obrigatório. Só quis dizer que essa forma parece não resolver o problema.

Acrescentei o parâmetro, como vc sugeriu, e agora os dados estão como NULL. Quando consulto sem o RPAD e o LPAD, os dados aparecem corretamente.
Anexos
tela2.png
tela2.png (6.11 KiB) Visualizado 977 vezes
tela.png
tela.png (9.25 KiB) Visualizado 977 vezes
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

TBROWSE

Mensagempor cjp » 13 Jun 2021 23:33

Uma outra dúvida sobre Tbrowse, com ADO (se bem que, ao que me parece, a questão é exclusiva de Tbrowse):

Gostaria de saber como obter a referência à coluna em foco no Tbrowse.

Em suma, quero algo como o modo/coluna que uso em funções de usuário do dbedit().

Estudei a classe Tbrowse no NG, mas não achei nada a respeito.

Alguém pode me ajudar?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

TBROWSE

Mensagempor alxsts » 14 Jun 2021 10:46

[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

TBROWSE

Mensagempor cjp » 16 Jun 2021 23:48

De fato, colPos() resolve parte do meu problema.
Mas não vi no tópico em questão se seria possível pegar também o nome da coluna posicionada. É possível?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

TBROWSE

Mensagempor alxsts » 17 Jun 2021 01:14

Olá!
cjp escreveu:Estudei a classe Tbrowse no NG, mas não achei nada a respeito.

NG é documentação do Cl*pper. Se você usa Harbour, estude a documentação do Harbour, embora não seja abundante. A documentação do Harbour possivelmente mostre todas as funções e comandos do Cl*pper mas o inverso não é verdadeiro. Para estudos, baixe o documento xHarbour Language Reference Guide (chm file). É xHarbour mas é mais compatível com Harbour que com Cl*pper...
cjp escreveu:Mas não vi no tópico em questão se seria possível pegar também o nome da coluna posicionada. É possível?
Em suma, quero algo como o modo/coluna que uso em funções de usuário do dbedit().

Também não vi alguma solicitação neste sentido. A não ser que a referência seja
quero algo como o modo/coluna

- A questão da coluna está resolvida.
- A classe TBrowse() não tem esta opção "Modo".
- Nome da coluna posicionada: o nome da coluna não é possível saber pois as colunas não são nomeadas. Se estiver se referindo ao cabeçalho de coluna, é possível recuperar da mesma forma usada para recuperar a coluna atual:
oTBrowse:getColumn(nCol):heading
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

TBROWSE

Mensagempor cjp » 17 Jun 2021 01:34

Sim, era isso que eu queria. Muito obrigado.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1531
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro