carregar dados da tabela MariaDB em uma GRID

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

carregar dados da tabela MariaDB em uma GRID

Mensagem por Amparo »

ola amigos

Harbour MiniGUI Extended Edition 19.03 (Release)


tenho uma tabela de cliente com seus devidos campos, um em especifico, o CODIGO_VENDEDOR varchar(20), na tabela de vendedor tenho o campo CODIGO varchar(20) Nome varchar(50) e por ai vai.

preciso alimentar uma GRID que contem os seguintes campos:

codigo do cliente
nome do cliente
contato
telefone
vendedor
nome do vendedor
...

ate o campo vendedor sem problema utilizo a sintaxe +/- ssim
MSELE := OSERVER:QUERY( "SELECT codigo,nome,contato,telefone,vendedor FROM CLIENTE USE INDEX (idx_codigo) ORDER BY CODIGO )

mais preciso pegar o NOME DO VENDEDOR que esta na tabela de VENDEDORES, como fazer isso?

minha instrução esta desta forma:

Código: Selecionar todos

   SETMESSAGE("Aguarde pesquisando registros...",1 )

   SELE_MSELE_QUERY := OSERVER:QUERY( MSELE )

   IF SELE_MSELE_QUERY:NETERR() 
      MSGSTOP( "Erro ao abrir tabela de " + SGC020101AFUNC[1] + " !!!" + QUEBRA + SELE_MSELE_QUERY:ERROR() + QUEBRA + ALLTRIM( PROCNAME(0) ) + "(" + STRZERO( PROCLINE(0),4) +")", MSIST )
   ELSE
      CONTA_REG := 1

      SETMESSAGE( STRZERO( SELE_MSELE_QUERY:LASTREC(),6 ), 4 )

      DELETE ITEM ALL FROM &NOME_DA_GRID. OF SGC020101FORM

      DO WHILE CONTA_REG <= SELE_MSELE_QUERY:LASTREC()
         DO EVENTS
         ROWS_MSELE_QUERY := SELE_MSELE_QUERY:GETROW( CONTA_REG )

         ADD ITEM {ROWS_MSELE_QUERY:FIELDGET("codigo"), ;
         ROWS_MSELE_QUERY:FIELDGET("nome") ,;
         ROWS_MSELE_QUERY:FIELDGET("contato"),;
         ROWS_MSELE_QUERY:FIELDGET("telefone"),;
         ROWS_MSELE_QUERY:FIELDGET("vendedor")   } TO &NOME_DA_GRID. OF SGC020101FORM

         SELE_MSELE_QUERY:SKIP(1)

         CONTA_REG += 1
      ENDDO

      DOMETHOD( "SGC020101FORM", NOME_DA_GRID,"SETFOCUS" )
   ENDIF
desde ja agradeço a ajuda.

amparo
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

carregar dados da tabela MariaDB em uma GRID

Mensagem por MSDN »

Amparo, veja o código abaixo, é o que vc precisa, claro que precisa trocar os nomes de tabelas e campos, mas a lógica é essa, nesse exemplo mostra como selecionar quais campos irão aparecer no grid, pegar a descrição com base em uma ID, filtrar por descrição e ordenar.

Código: Selecionar todos

oQuery := oMySQL:Query('select produtos.id, produtos.descricao_cplta, produtos.qtd_estoque, produtos.estoque_min, produtos.preco_venda, produtos.ativo, produtos.baixa_estoque, categoria.descricao from produtos INNER JOIN categoria ON (produtos.id_categoria = categoria.id) where produtos.descricao_cplta like '+v_pesquisa+' order by produtos.descricao_cplta')
Abraço
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

carregar dados da tabela MariaDB em uma GRID

Mensagem por Amparo »

OLA AMIGOS

bom dia Marcelo, obrigado por sua colaboração.

então o INNER JOIN é o responsável em fazer o relacionamento entre as tabelas, vou estuda lo e ver as possibilidades que ele pode me trazer, ainda não pesquisei sua funcionalidade mas na logica, me parece que ele faz o relacionamento com varias tabelas ao mesmo tempo.

abraço
Amparo
Responder