Jump to content
Fivewin Brasil

Erro o Executar Comandos de DOS


marcio1361303176

Recommended Posts

Amigos, eu executava estes comandos abaixo, pra mudar a estrutura do DBF, em clipper-DOS

Porem em five ele não executa

Teria como alguem me ajudar

*--------*--------*------------------------------------

SET DELETE OFF

CLOSE ALL

CREATE CARTA_CO.NEW FROM D_ESTRU

USE CARTA_CO.NEW

APPEND FROM CARTA_CO.DBF

USE

RENAME CARTA_CO.DBF TO CARTA_CO.OLD

RENAME CARTA_CO.NEW TO CARTA_CO.DBF

CLOSE DATABASE

Desde já Agradeço a Todos

masterservicevrb@gmail.co

Fivewin 2.3 + clipper 5.2e + SIXNSX

Link to comment
Share on other sites

Amigos, eu executava estes comandos abaixo, pra mudar a estrutura do DBF, em clipper-DOS

Porem em five ele não executa

Teria como alguem me ajudar

*--------*--------*------------------------------------

SET DELETE OFF

CLOSE ALL

CREATE CARTA_CO.NEW FROM D_ESTRU

USE CARTA_CO.NEW

APPEND FROM CARTA_CO.DBF

USE

RENAME CARTA_CO.DBF TO CARTA_CO.OLD

RENAME CARTA_CO.NEW TO CARTA_CO.DBF

CLOSE DATABASE

Desde já Agradeço a Todos

masterservicevrb@gmail.co

Fivewin 2.3 + clipper 5.2e + SIXNSX

Link to comment
Share on other sites

Amigos, eu executava estes comandos abaixo, pra mudar a estrutura do DBF, em clipper-DOS

Porem em five ele não executa

Teria como alguem me ajudar

*--------*--------*------------------------------------

SET DELETE OFF

CLOSE ALL

CREATE CARTA_CO.NEW FROM D_ESTRU

USE CARTA_CO.NEW

APPEND FROM CARTA_CO.DBF

USE

RENAME CARTA_CO.DBF TO CARTA_CO.OLD

RENAME CARTA_CO.NEW TO CARTA_CO.DBF

CLOSE DATABASE

Desde já Agradeço a Todos

masterservicevrb@gmail.co

Fivewin 2.3 + clipper 5.2e + SIXNSX

Link to comment
Share on other sites

Caro amigo, obrigado por Responder

Somente estes comandos Funcionan

SET DELETE OFF

CLOSE ALL

CREATE CARTA_CO.NEW FROM D_ESTRU

USE CARTA_CO.NEW

o resto, não

Agora gostaria de informar que meus dados fica na pasta

DADOS

O CAMINHO COMPLETO SERIA

C:\MESTOQ\DADOS

O EXECUTAVEL FICA EM C:\MESTOQ E OS DBF+NSX EM \DADOS

DESDE Jà AGRADEÇO A TODOS

masterservicevrb@gmail.co

Fivewin 2.3 + clipper 5.2e + SIXNSX

Link to comment
Share on other sites

Não sei se vai ajudar, mas quando preciso alterar a estrutura de

um arquivo, faço assim.

Use ArqQuivo.dbf

wCampo:=FieldName(n) // onde n e quantidade de campos com a nova estrutura.

If (Empty(wCampo))

vArq:="C:\diretorio\arquivo.xxx"

Use

Copy File ARQQUIVO To &vArq

Crio a nova estrutura.

Abro o arquivo com a nova estrutura.

Dou um append com os dados da estrutura velha.

Se for o caso, gero as informações para os novos campos.

Deleto os indices

EndIf

rodape_fw.jpg

Link to comment
Share on other sites

Desculpe.. mais para que o usuario mudaria a estrutura de um arquivo ??? já pensou um curioso alterando tudo em um programa já funcionando redondinho ???

Mais Se for para alterar antes do programa ficar pronto use o FOX ou o DBU do clipper.

Abraços

LUIZ ARRUDA - Corumba-MS

FW 2.4 - CLP 5.3 - WS ico67@ibest.com.br

Não Percam - 3º ENCONTRO DE FIVEWINERS - NOVEMBRO DE 2005

Link to comment
Share on other sites

SET DELETE OFF

CLOSE ALL

CREATE \DADOS\CARTA_CO.NEW FROM D_ESTRU

USE \DADOS\CARTA_CO.NEW

APPEND FROM \DADOS\CARTA_CO.DBF

CLOSE ALL

RENAME \DADOS\CARTA_CO.DBF TO \DADOS\CARTA_CO.OLD

RENAME \DADOS\CARTA_CO.NEW TO \DADOS\CARTA_CO.DBF

CLOSE ALL

Fazendo uns testes aqui no programa, funcionou blz, acho que teria que ser desta forma, indicando o caminho e o destino, fazendo direto do diretorio tb funcionou, espero ter ajudado

ABraços

Alessandro

Link to comment
Share on other sites

Meu carissimo LUIZ ARRUDA, pense bem, leia com atenção.

Não é para o usuário alterar a estrutura.

Se isto fosse, para que programar.

Isto serve para quando voce ter que alterar a estrutura de

um arquivo de um sistema já em uso, ou seja implantado, rodando.

Se for para alterar estrutura de um sistema ainda não implantado,

o FOX ou DBU, torna-se mais obsoleto ainda, já que seria

somente alterar onde cria-se os arquivos e indices.

rodape_fw.jpg

Link to comment
Share on other sites

Sergio desculpe, eu pensei que li "ALTERAR A ESTRUTURA do DBF" e nao o local onde sao criados os arquivos e indices. Foi + - o que eu disse, porque altera-los via codigos, se temos ferramentas bem mais facil de fazer isso.

Abraços

LUIZ ARRUDA - Corumba-MS

FW 2.4 - CLP 5.3 - WS ico67@ibest.com.br

Não Percam - 3º ENCONTRO DE FIVEWINERS - NOVEMBRO DE 2005

Link to comment
Share on other sites

Marcio,

Acredito que não esteja renomeando devido já existir o arquivo de destino.

ERASE CARTA_CO.OLD && <<<<<---- acrescentar essa linha

RENAME CARTA_CO.DBF TO CARTA_CO.OLD

RENAME CARTA_CO.NEW TO CARTA_CO.DBF

É uma das possibilidades. Se não der certo, retorne.

Um abraço

Paulo/CONTATO SISTEMAS

Clipper53b / FW26 / Blinker70

Ajudar é um prazer, agradecer é uma obrigação

PRESTIGIEM O III ENCONTRO DE USUÃRIOS DE FIVEWIN - 2005

Inscreva-se: http://www.installsis.com.br/encontro

Link to comment
Share on other sites

Abaixo vai uma rotina de atualizacao automatica de estrutura de arquivos.

Function Atu_stru

Local nomeold := "TESTE.DBF"

Local nomenew := "_ESTE.DBF"

Local memoold := "TESTE.FPT"

Local memonew := "_ESTE.FPT"

Local nomeind := "TESTE.CDX"

Local campos, campo, nomecampo, tipocampo, pos

// A matriz aOriginal contem a estrutura do .DBF utilizado // no sistema

CursorWait()

Close DataBases

FileDelete( nomeind )

If ! File( nomenew )

If RenameFile( nomeold, nomenew ) == 0

RenameFile( memoold, memonew )

DbCreate( nomeold, M->adbf )

Else

**Colocar mensagem

MsgInfo( "Não consegui renomear!" )

CursorArrow()

Quit

EndIf

dbUseArea( .T., "DBFCDX", nomeold, "TESTE1", .F. )

dbUseArea( .T., "DBFCDX", nomenew, "TESTE2", .F. )

dbGoTop()

While ! Eof()

dbSelectArea( "TESTE1" )

dbAppend()

For Campo := 1 To fCount()

nomecampo := FieldName( campo )

pos := aScan( aOriginal, { |matriz| matriz[1] == nomecampo } )

If pos # 0

Tipocampo := FieldType( campo )

If M->aOriginal[pos][2] == tipocampo

TESTE1->( FieldPut( campo, &cAlias2->&nomecampo ) )

Else

If tipocampo == "C" .And. M->aOriginal[pos][2] == "N"

TESTE1->( FieldPut( campo, Str( &cAlias2->&nomecampo ) ) )

ElseIf tipocampo == "N" .And. M->aOriginal[pos][2] == "C"

TESTE1->( FieldPut( campo, Val( &cAlias2->&nomecampo ) ) )

EndIf

EndIf

EndIf

SysRefresh()

Next

dbSelectArea( "TESTE2" )

dbSkip()

End

Close DataBases

FErase( nomenew )

FErase( memonew )

Else

MsgInfo( "Achei o arquivo _" )

** Colocar mensagem

CursorArrow()

Quit

EndIf

CursorArrow()

Return(Nil)

Marcelo Gomes

elitenet@terra.com.br

FW 2.3C/CLIPPER 5.2E/BLINKER 7.0

Link to comment
Share on other sites

Desculpe na funcao acima tem uns errinhos que vi so depois de postar, acertei nesta aqui.

Function Atu_stru

Local nomeold := "TESTE.DBF"

Local nomenew := "_ESTE.DBF"

Local memoold := "TESTE.FPT"

Local memonew := "_ESTE.FPT"

Local nomeind := "TESTE.CDX"

Local campos, campo, nomecampo, tipocampo, pos

// A matriz aOriginal e M->adbf contem a estrutura do .DBF utilizado no sistema

CursorWait()

Close DataBases

FileDelete( nomeind )

If ! File( nomenew )

If RenameFile( nomeold, nomenew ) == 0

RenameFile( memoold, memonew )

DbCreate( nomeold, M->adbf )

Else

**Colocar mensagem

MsgInfo( "Não consegui renomear!" )

CursorArrow()

Quit

EndIf

dbUseArea( .T., "DBFCDX", nomeold, "TESTE1", .F. )

dbUseArea( .T., "DBFCDX", nomenew, "TESTE2", .F. )

dbGoTop()

While ! Eof()

dbSelectArea( "TESTE1" )

dbAppend()

For Campo := 1 To fCount()

nomecampo := FieldName( campo )

pos := aScan( aOriginal, { |matriz| matriz[1] == nomecampo } )

If pos # 0

Tipocampo := FieldType( campo )

If M->aOriginal[pos][2] == tipocampo

TESTE1->( FieldPut( campo, TESTE2->&nomecampo ) )

Else

If tipocampo == "C" .And. M->aOriginal[pos][2] == "N"

TESTE1->( FieldPut( campo, Str( TESTE2->&nomecampo ) ) )

ElseIf tipocampo == "N" .And. M->aOriginal[pos][2] == "C"

TESTE1->( FieldPut( campo, Val( TESTE2->&nomecampo ) ) )

EndIf

EndIf

EndIf

SysRefresh()

Next

dbSelectArea( "TESTE2" )

dbSkip()

End

Close DataBases

FErase( nomenew )

FErase( memonew )

Else

MsgInfo( "Achei o arquivo _" )

** Colocar mensagem

CursorArrow()

Quit

EndIf

CursorArrow()

Return(Nil)

Observacao: Esta rotina permite voce incluir novos campos no arquivo, retirar campos do arquivo, mudar o formato de campos do arquivo.

Marcelo Gomes

elitenet@terra.com.br

FW 2.3C/CLIPPER 5.2E/BLINKER 7.0

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...