Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RenatoReis

Conversão DBF - SQL

Recommended Posts

Srs., Convertendo dados de uma tabela DBF para outra em MSSQL 2008R2 Express, ocorre um erro quanto rodo um procedimento para levar os dados da tabela DBF para a SQL.

Na Tabela SQL há 2 campos: 1 Cod_Proced int (Não nulo e identidade) e o outro é descrição.

Na Tabela DBF a mesma estrutura.

Quando leio a tabela(DBF) para gravar na tabela(SQL) é exibida a msg de que o campo não pode ser modificado.

Verifiquei que isso ocorre porque o campo da tabela(SQL) é identidade.

Pude verificar isso quando criei outro campo na tabela(SQL) e consegui gravar os dados, mas qdo tento passar ele para identidade, não há permissão. Acredito que isso ocorra porque o campo identidade tenha incremento.

No Forum da Microsoft não deram prosseguimento ao meu tópico, mas chegaram a me perguntar qual o provider estou utilizando. É o Native Client.

 

Alguém sabe o que posso fazer neste caso? Tenho muitas outras tabelas para fazer o mesmo procedimento. Obrigado.

Abcs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não achei seu post no MSDN, mas vamos por aqui então.

 

Quando vc esta fazendo esta migração, pq nao traz os dados para a tabela e depois cria as PK´s? Existe algumas particularidades entre os campos que realmente podem impedir de fazer, como por exemplo, o identity da tabela no DBF estar explicito na transição para o SQLServer.

 

Esta usando o DTSx? MMS? Como esta fazendo esta migração e como montou a estrutura do SQL?

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

A.Jr., Estou fazendo a conversão de vários sistemas para um único sistema(Clipper-DBF p/ Delphi-SQL) e faço isso gradativamente. Estou usando os Bancos em paralelo. A medida que necessito transferir os dados de uma tabela DBF para SQL, crio procedure no próprio programa, leio registro por registro e atualizo(gravo) no campo correspondente na tabela SQL.

Tenho pouca experiência em SQL e o que sei foi através dos foruns e tutoriais.

Não sei o que vc quis dizer sobre PK's, DTSx e MMS.

Já fiz este procedimento em outras tabelas mas o que pude constatar realmente é que na tabela SQL, quando o campo tem autoincremento, não me permite fazer isso e eu não sei o que pode ser feito.

Um teste que fiz para chegar a esta conclusão foi criar a tabela em SQL, sem identificar o campo código com autoincremento, ai consegui transportar os dados, mas quando tentei alterar a característica do campo e passá-lo para autoincremento, deu o erro.

Este é o problema.

Abcs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, pode ser que o comando para alterar o tipo do campo esteja invalido, ou que tenha dois registros com o msm valor. Ai vai depender do erro.

No caso de migração, é assim mesmo, ainda mais com duas linguagens distintas, mas vamos por partes.

Tu já tem a estrutura no SQL? Sabe criar?

Eu faria deste modo:

  • Criaria a estrutura das tabelas, somente estrutura, sem chave ainda, e migraria os dados, via DTS.
    Para usar o DTS, vá no Management Studio, também chamado de MMS, clique com o botão direito em cima da database em questão, TASKS -- Import/Export Data.A tela é intuitiva, se tiver dúvidas de uma pesquisada no fórum que tem um post meu que coloquei até as telas.
  • Criaria os "identity" que são as chaves primárias, e nesse caso se desse erro, pode ser que tenha multiplos registros.
  • Criarias as chaves estrangeiras (Foreing Keys).

A principio faria deste modo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.