Clipper On Line • Ver Tópico - ARRAY para append e EDITar tabelas DBF

ARRAY para append e EDITar tabelas DBF

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

Moderador: Moderadores

 

ARRAY para append e EDITar tabelas DBF

Mensagempor syslink » 06 Fev 2019 12:15

pessoal, tenho um arquivo DBF com 4 campos: COD, DESCRICAO, SIMNAO, VALOR, com 2 ou 3 registros.

Quero copiar todo o conteúdo de um array pra gravar no DBF. Mas, "arrays" sempre me deixam de cabeça quente.
Penso no seguinte código:
      sele ARQUIVO
      go top
      for I = 1 to len aRows[]
            mCOD[I]             := aRows{I,1]
            mDESCRICAO[I]   := aRows{I,1,1]
            mSIMNAO[I]        := aRows{I,1,1,1]
            mVALOR[I]          := aRows{I,1,1,1,1]
      next I
   
    do while .t.
         if rlock()
            replace  COD         with mCOD[I]   ,;
                     DESCRICAO   with mDESCRICAO[I]      ,;
                     SIMNAO      mSIMNAO[I]      ,;
                     VALOR       with mVALOR[I]
            unlock
            commit
            exit
         endif
    enddo
return


Mas, não estou conseguindo entender, pois, como disse, MATRIZes sempre me mordem, e, não sei manipular. Sou humilde em vir aqui pra tentar aprender.

obrigado!
syslink
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 132
Data de registro: 20 Fev 2018 13:13
Cidade/Estado: joinvile/sc
Curtiu: 3 vezes
Mens.Curtidas: 3 vezes

ARRAY para append e EDITar tabelas DBF

Mensagempor JoséQuintas » 06 Fev 2019 13:11

Igual coloquei em outro post.... a gente é que complica.... rs

imagine o array como uma fila...
O array multidimensional, fila de filas....
qual é o primeiro da primeira fila, o 1 de 1, o [1,1]

fila de registros, com fila de campos..

fila 1, campo 1 [1,1]
fila 1, campo 2 [1,2]

FOR nCont = 1 TO Len( aList )
   ? aList[ nCont, 1 ]
   ? aList[ nCont, 2 ]
   ? aList[ nCont, 3 ]
NEXT


Se preferir...

#define CODIGO 1
#define DESCRICAO 2
#define SIMNAO 3
#define VALOR 4
FOR nCont = 1 TO Len( aList )
   ? aList[ nCont, CODIGO ]
   ? aList[ nCont, DESCRICAO ]
   ? aList[ nCont, SIMNAO ]
   ? aList[ nCont, VALOR ]
NEXT


se preferir trabalhar com um elemento de cada vez, pode facilitar

#define CODIGO 1
#define DESCRICAO 2
#define SIMNAO 3
#define VALOR 4
FOR EACH aRegistro IN aList
   ? aRegistro[ CODIGO ]
   ? aRegistro[ DESCRICAO ]
   ? aRegistro[ SIMNAO ]
   ? aRegistro[ VALOR ]
NEXT
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: 18014
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

ARRAY para append e EDITar tabelas DBF

Mensagempor Eric.Developer » 09 Fev 2019 15:39

Olá,
Exemplo com origem e destino dos dados.

   FUNCTION ....
   local aInfo
   local nPos
   
   ....
   ....
   ....
   // Carregando dados no array (dinamicamente)
   aInfo:={}
   SELECT ORIGEM
   do while ! EOF()
      AADD( aInfo, { FIELD->COD, FIELD->DESCRICAO, FIELD->SIMNAO, FIELD->VALOR } ) // 1, 2, 3, 4
     DBSkip()
   enddo
   ....
   ....
   ....
   // Lendo cada elemento do array, para incluir/alterar registros na tabela destino:
   SELECT DESTINO
   for nPos:=1 TO LEN(aInfo)
      ....
     FIELD->COD      :=aFld[nPos,1]
     FIELD->DESCRICAO:=aFld[nPos,2]
     FIELD->SIMNAO   :=aFld[nPos,3]
     FIELD->VALOR    :=aFld[nPos,4]
      ....
   next
   ......
   ......
   ......
   return nil


syslink escreveu:pessoal, tenho um arquivo DBF com 4 campos: COD, DESCRICAO, SIMNAO, VALOR, com 2 ou 3 registros.

Quero copiar todo o conteúdo de um array pra gravar no DBF. Mas, "arrays" sempre me deixam de cabeça quente.
Penso no seguinte código:
Delphi, SQL, FastReport | Xailer VxH Fivewin Minigui Hwgui [x]Harbour
Contate-me: Desenvolvimentos em geral | Treinamentos
Overview/Download: Xailer / Harbour Ferramenta profissional e mais completa.
Avatar de usuário

Eric.Developer
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 161
Data de registro: 31 Ago 2010 22:16
Curtiu: 0 vez
Mens.Curtidas: 8 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 4 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