Página 1 de 1

carregar dados da tabela MariaDB em uma GRID

Enviado: 22 Abr 2019 14:45
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

carregar dados da tabela MariaDB em uma GRID

Enviado: 23 Abr 2019 11:01
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

carregar dados da tabela MariaDB em uma GRID

Enviado: 24 Abr 2019 07:02
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