Letodb e Append from
Moderador: Moderadores
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Letodb e Append from
amigos fiz uma função nova e não estou tendo exito com o leto no comando append from
este comando não tem no letodb? e se tiver como é o comando e uso do mesmo?
agradeço desde já
este comando não tem no letodb? e se tiver como é o comando e uso do mesmo?
agradeço desde já
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Letodb e Append from
Olá!
É um comando que uso.
Qual versão do seu LetoDb ? Cadê o erro ?
Saudações,
Itamar M. Lins Jr.
É um comando que uso.
Qual versão do seu LetoDb ? Cadê o erro ?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Letodb e Append from
Nobre estou usando o Leto ultima versão do ElchItamar M. Lins Jr. escreveu:Olá!
É um comando que uso.
Qual versão do seu LetoDb ? Cadê o erro ?
Saudações,
Itamar M. Lins Jr.
Objetivo da Função abaixo é:
É criado um arquivo temporário de nome arq_tmp que receberá a estrutura com novos campos adicionados por outra função no vetor _mat_arq, e ao abrir o arquivo temporário novo eu uso o appe from pra adicionar os registros que existem no arquivo antigo, então eu apago o velho e renomeio o novo já com os registros e campos novos.
Código: Selecionar todos
Function Main()
public _mat_arq := {}
_nom_arq := "men001.dbf"
_mat_arq := {}
aadd(_mat_arq,{"cod_men","c",04,00})
aadd(_mat_arq,{"dia_ven","c",02,00})
aadd(_mat_arq,{"msg_mes","c",01,00})
Verdbf(_nom_arq)
Return Nil
----------------------------------------------------------------------
FUNC VERDBF(_nom_arq)
----------------------------------------------------------------------
if ! leto_file(_nom_arq)
* DbCreate(_nomarq,_mat_arq) // assim não funciona no leto
DbCreate(_nom_arq,_mat_arq,,.t.,'alias') // assim funciona
retu .t.
else
if _atual # '1'
leto_ferase('arq_tmp') // Perfeito
* //DbCreate('arq_tmp',_mat_arq,,.t.,'alias') // funcionou assim e em baixo tb
DbCreate(PathLeto + 'arq_tmp',_mat_arq,,.t.,'alias') // Perfeito
use (PathLeto + 'arq_tmp')
* appe from &_nom_arq // era assim mas não funciona no leto
arquivo := PathLeto
appe from (_nom_arq)
leto_ferase(_nom_arq)
DbCloseArea()
leto_frename('arq_tmp.dbf',_nom_arq)
endif
retu .f.
endif
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Letodb e Append from
Olá!
Respondi errado "acredito" e apaguei.
Veja ai:
Eu fiz o meu, pq o "append from" não verifica a estrutura "N" para "C"
Mas a forma antiga está ai usando o flag "VIA"
Saudações,
Itamar M. Lins Jr.
Respondi errado "acredito" e apaguei.
Veja ai:
Código: Selecionar todos
***************************************
FUNCTION MyAppendFrom(cAO,cAD,cTempDBF) //cAO = Alias Origem, cAD Alias Destino
***************************************
*
*
LOCAL nCount, nCampos := (cAD)->(FCount()), x:=1, nRec:=1, nTotRec := (cAO)->(LastRec())
LOCAL cType := "" , xField
oBar := HProgressBar():NewBox("Importando " + cTempDBF + ", " + (cAO)->(Dbf()) + ": "+lTrim(str(1,9))+" De "+lTrim(Str(nTotRec,9))+" Registro(s)" ,,0,400,, nTotRec, nTotRec,,.f. )
DO WHILE (cAO)->(!Eof())
(cAD)->(dbAppend())
FOR nCount := 1 TO nCampos
cField := (cAD)->(Field(nCount))
IF ( (cAO)->(fieldpos( cField )) != 0 )
cTypeDest := ValType( (cAD)->&cField )
cTypeOrig := ValType( (cAO)->&cField )
IF cTypeDest <> cTypeOrig
IF cTypeDest == "C" .AND. cTypeOrig == "N"
xField := hb_ntos( (cAO)->&cField )
ELSE
xField := (cAO)->&cField
ENDIF
ELSE
//hwg_msginfo(cField + " --- " +cTypeOrig)
xField := (cAO)->&cField
//hwg_msginfo(cField + " --- " +ValType(xField))
ENDIF
(cAD)->&cField := xField
ENDIF
NEXT
(cAO)->(dbSkip())
iif(x++==100,(nRec+=x,x:=1,ShowGrafico(oBar,nRec,nTotRec)),.t.)
EndDO
oBar : Close()
FechaDb(cAD)
FechaDb(cAO)
/*
oBar := HProgressBar():NewBox( cDirImport + " - Importando... "+lTrim(str(1,9))+" De "+lTrim(Str(nTotRec,9))+" Registro(s)" ,,0,400,, nTotRec, nTotRec,,.f. )
x := 0
nRec := 0
//dbSelectArea('dbc')
//hwg_msginfo(Alias()+"---"+string+'---'+cTempDBF)
Append from &cDirImport via iif(lRddLeto,"LETO","DBFCDX") For iif(x++==100,(nRec+=x,x:=0,ShowGrafico(oBar,nRec,nTotRec)),.t.)
oBar : Close()
dbc->(DbCloseArea())
*/
RETURN .T.
Mas a forma antiga está ai usando o flag "VIA"
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Letodb e Append from
vou testar aqui amigo , mais a minha função funciona legal para o que foi determinado, no harbour direto
agora no leto deu pau, como seria essa linha de comando para usar o proprio append from no leto? vc
poderia me explicar e ou corrigir a linha que devo ter cometido Mer....
agora no leto deu pau, como seria essa linha de comando para usar o proprio append from no leto? vc
poderia me explicar e ou corrigir a linha que devo ter cometido Mer....
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Letodb e Append from
Olá!
Usava com sucesso... Muitos anos usando. Mudei pq precisei mudar um campo NUMERICO para CARACTERE, só isso. "append from" não faz isso.
Como está ai. APPEND FROM ... VIA "LETO" ou "DBFCDX" não dá erro.
Saudações,
Itamar M. Lins Jr.
Usava com sucesso... Muitos anos usando. Mudei pq precisei mudar um campo NUMERICO para CARACTERE, só isso. "append from" não faz isso.
agora no leto deu pau,
Como está ai. APPEND FROM ... VIA "LETO" ou "DBFCDX" não dá erro.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Letodb e Append from
Olá!
Na verdade agora estou na dúvida dessa MACRO... Tem tempo que fiz isso.
Caso usando a cláusula VIA dê erro, não pode usar MACRO substituição.
Saudações,
Itamar M. Lins Jr.
Na verdade agora estou na dúvida dessa MACRO... Tem tempo que fiz isso.
Caso usando a cláusula VIA dê erro, não pode usar MACRO substituição.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Letodb e Append from
Olá!
Olhando o Changelog.
Saudações,
Itamar M. Lins Jr.
Olhando o Changelog.
Código: Selecionar todos
2010-10-09 13:00 UTC+0300 Pavel Tsarenko (tpe2/at/mail.ru)
* source/server/letofunc.c
* source/client/leto1.c
+ leto_SetAreaEnv() and leto_ClearAreaEnv() functions for navigation
operations on server
+ added support for letoTrans(). The commands COPY TO / APPEND FROM
(functions __dbCopy() / __dbApp()) can evaluated on the server now
* tests/test_tr.prg
+ added sample for functions Leto_dbTrans(), Leto_dbCopy(), Leto_dbApp().
The difference of these functions from standard __dbTrans(), __dbCopy(),
__dbApp() that instead of codeblocks for "for" and "while" their
string representation is transferred.
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Letodb e Append from
sem querer abusar da sua boa vontade e ja abusando ... eu li o changelog , mais na pratica a minha função teima em não querer funcionar corretamente ,
teria com vc analisar onde esta esse maledeto erro na minha função??
agradeço desde ja
teria com vc analisar onde esta esse maledeto erro na minha função??
agradeço desde ja
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Letodb e Append from
Código: Selecionar todos
IF cTypeDest <> cTypeOrig
IF cTypeDest == "C" .AND. cTypeOrig == "N"
xField := hb_ntos( ValType( (cAO)->&cField ) )
ELSE
xField := (cAO)->&cField
ENDIF
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Letodb e Append from
Olá!
Só usei 1 vez isso, depois devo ter alterado e ficou sem usar e com esse bug. tem que tirar valtype... e outro if sem necessidade.
Saudações,
Itamar M. Lins Jr.
Tá errado mesmo.me parece errado...
Só usei 1 vez isso, depois devo ter alterado e ficou sem usar e com esse bug. tem que tirar valtype... e outro if sem necessidade.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Letodb e Append from
É fui usar sua função n deu certo e ainda batendo cabeça com a minha
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Letodb e Append from
JoséQuintas escreveu:Sei lá.... me parece errado... deveria ser hb_Ntos() do conteúdo, e não de ValType() que retorna uma letra com o tipo.Código: Selecionar todos
IF cTypeDest <> cTypeOrig IF cTypeDest == "C" .AND. cTypeOrig == "N" xField := hb_ntos( ValType( (cAO)->&cField ) ) ELSE xField := (cAO)->&cField ENDIF
rapaz né que essa eu achei engraçado rsrs, a função que eu uso e estou batendo cabeça , n teve resposta , a do amigo que eu não uso teve correção kkkk
vou pedir pra o itamar postar a minha , quem sabe se não dou sorte assim rsrs
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Letodb e Append from
É que erro referente Harbour dá pra identificar, mas de lib que não uso, aí complica.
Mas pensando em RDDs.... talvez o APPEND FROM não esteja identificando direito de onde pra onde.
Lembrando que, como o Itamar já comentou, APPEND FROM dá erro se foi alterado o tipo do campo de numérico pra caractere e vice-versa, tratar campo a campo pode ser mais interessante.
Considerando que você consegue ler DBF e gravar DBF, substituir o APPEND FROM por uma rotina "manual" vai acabar eliminando o possível problema no APPEND FROM.
Mas pensando em RDDs.... talvez o APPEND FROM não esteja identificando direito de onde pra onde.
Lembrando que, como o Itamar já comentou, APPEND FROM dá erro se foi alterado o tipo do campo de numérico pra caractere e vice-versa, tratar campo a campo pode ser mais interessante.
Considerando que você consegue ler DBF e gravar DBF, substituir o APPEND FROM por uma rotina "manual" vai acabar eliminando o possível problema no APPEND FROM.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Nascimento
- Usuário Nível 4

- Mensagens: 763
- Registrado em: 19 Jul 2008 12:11
- Localização: OLINDA-PE
Letodb e Append from
entendo mestre quintas só foi para descontrair mesmo rsrs
A arte de programar é simplesmente fazer seus pensamentos serem interpretados por uma maquina
clipper 5.3 /harbour/minigui