Pergunta

Eu trabalhei com formato shapefile ESRI agora e eu tenho algum problema com a mudança / editar o tamanho do campo de banco de dados. Eu criei um campo com 200 comprimento / tamanho e agora eu quero que ele apenas 80 comprimento / tamanho (espaço e outra melhoria).

No entanto i posso mais não o tamanho campo de edição :( ponto alguém pode descobrir como alterar o tamanho do campo?

utilitários Btw eu tentei, como DBF Explorer, que pode dimensionar editar campo, mas quando eu mudar o tamanho do campo no campo de char / texto, dados no flutuador campo / numérico ficar excluído :(
DBF Explorador

PS: o uso de banco de dados ESRI .dbf extensão, o que eu acho que foi DBASE III mais ou formato DBASE IV

Foi útil?

Solução

Você pode editar o cabeçalho do arquivo para mudá-lo com qualquer editor hexadecimal.

bytes 10-11: representa o lenth de uma ficha (byte menos significativo em primeiro lugar)

começando no byte 48 uma estrutura que se repete (48 bytes cada) descrevendo o campo. O byte 33 da estrutura representa o comprimento.

Outras dicas

Do não editar o cabeçalho, os dados são alinhados pela deslocamento fixo , e mudando o tamanho do campo para algo que não corresponde ao físico comprimento do registro irá corromper sua tabela.

Você vai precisar de algo que pode ler / DBFs gravação para efetivamente fazer isso. Uma antiga instalação do DBase vai funcionar, embora você seria melhor fora com Visual FoxPro (o comando FoxPro seria MODI STRU , que é a abreviação de " modificar a estrutura "). Também gostaria de olhar para outras ferramentas para empurrar / puxar os dados em outros formatos. Se você tem acesso ao Access (desculpem o trocadilho), você sempre pode importar os dados no Access como uma tabela do Access, reestruturar a mesa, em seguida, exportá-lo para fora, embora começando com Access 2007, DBF nativa / suporte FoxPro tem sido mais ou menos removida, requerendo ODBC. Outros (mais demorada) medidas seria:

  • olhada usando o Excel (desde que o dados tem muito poucas linhas, as versões mais antigas só pode lidar com 32k ou 64k linhas total)
  • usar algum Python para ler / escrever dados (faça uma procurar no SO para este info)
  • uma variante do acima em Perl / Ruby / {insert linguagem de script favorita com uma biblioteca DBF}
  • uso ODBC + {inserir banco de dados cheapo aqui} + {insert ferramenta de administração cheapo para banco de dados cheapo que podem modificar uma tabela aqui} + exportação {Banco de dados cheapo}

Para editar o tamanho do campo em um arquivo .dbf eu uso o OpenOffice. Em OpenOfficeSpreadsheet o nome feild .dbf seria apresentado como "FEILDNAME, C, 200". Para alterar o tamanho de 200 -> 80 você teria que schange conservado o nome do campo para: "FEILDNAME, C, 80" e salve o arquivo .dbf

.

A sua DBASE III (tipo de).

O arquivo DBF ambos contêm os metadados (como tamanho do campo e tipo) e os dados. Eles são todos tamanho fixo armazenado.

Eu não me lembro se existem ferramentas para mudar o FieldSize, mas você pode criar uma nova tabela e copiar os dados. Mas o formato não é tão difícil.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top