Página 6 de 6

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Enviado: 04 Mai 2012 12:02
por alxsts
Olá!

Obrigado Stanis.

Escrevi em uma máquina onde não há Clipper instalado e não testei.

Faltaram duas chaves. O correto seria:

Código: Selecionar todos

AAdd( aArray, { { "Codigo", "N", 3, 0 }, { "Nome", "C", 50, 0 } } )
Desculpem o inconveniente.

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Enviado: 04 Mai 2012 12:45
por Stanis Luksys
alxsts escreveu:AAdd( aArray, { { "Codigo", "N", 3, 0 }, { "Nome", "C", 50, 0 } } )
Não testei, mas isso não funcionará, a função DbCreate() deve receber a matriz de um campo em cada 'linha' do array. Cada array com a declaração de um campo deve ser um elemento da matriz principal.

Não daria certo colocar em um único elemento, vários campos. Desta forma que você colocou, o tamanho de aArray será 1, quando o correto seria 2.

Teste com Len(aArray).

Abraços.

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Enviado: 05 Mai 2012 11:15
por bencz
Bom dia....
testei o código... e nao funcionou... quando tento adicionar um "cliente"... recebo o seguinte erro...

Imagem

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Enviado: 05 Mai 2012 15:51
por alxsts
Olá!

Realmente ainda estava com o bug mencionado. Segue o código correto para futuros utilizadores:

Código: Selecionar todos

Function Main()

LOCAL aArray, nInd, nLen

   CLS

   aArray := { { "Codigo", "C", 5, 0 }, { "Nome", "C", 50, 0 } }
 
   DbCreate( "Clientes", aArray )   // ou simplesmente   DbCreate( "Clientes", { { "Codigo", "N", 3, 0 }, { "Nome", "C", 50, 0 } } ) 

   ? "Tabela 'Clientes' criada"

   aArray := {}

   AAdd( aArray, { "1", "VARIG" } )
   AAdd( aArray, { "2", "VASP" } )
   AAdd( aArray, { "3", "TRANSBRASIL" } )
   AAdd( aArray, { "4", "CRUZEIRO DO SUL" } )
   AAdd( aArray, { "5", "PANAM" } )
   AAdd( aArray, { "6", "BRANIFF" } )

   USE Clientes EXCLUSIVE NEW

   nLen := Len( aArray )

   FOR nInd := 1 TO nLen
      Clientes->( DbAppend() )
      Clientes->codigo := aArray[ nInd, 1 ]
      Clientes->nome := aArray[ nInd, 2 ]
   NEXT

   Clientes->( DbCloseArea() )

   ? "6 registros incluidos."
   ? "Fim de processamento. Tecle algo:"
   Inkey(10)  
    
   RETURN NIL
Stanis Luksys escreveu:Note que no exemplo original, o código é tipo caracter, tamanho 5, e não numérico como foi colocado agora
Bencz:
quanto ao erro que você está recebendo, certamente tem a ver com o comentário do Stanis, reproduzido acima. Delete a tabela Clientes que você tem e recrie usando o código que acabo de postar (compile e linkedite este código).

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Enviado: 31 Mai 2013 10:59
por bencz
blz, como q se faz a exclusão do item na tabela DBF ?? ( nao é nem mais duvida sobre a programação OO, e sim, sobre o arquivo DBF mesmo xD )

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Enviado: 31 Mai 2013 11:23
por alxsts
Olá!

Não sei se entendi a tua dúvida: DELETE ou DbDelete(). Seria isto?

xHarbour 100% Orientado a Objetos - Uma pequena introdução

Enviado: 03 Jun 2013 00:34
por bencz
a minha duvida, seria de como excluir um elemento do arquivo DBF
por exemplo, usando esse código do tutorial aqui postado, e eu quero criar uma opção para deletar um elemento do arquivo DBF, por exemplo, "varig", como posso fazer isso ?