none
Tabela Sqlserver sem primary key - como atualizar linha que foi lido RRS feed

  • Pergunta

  •  

    Tenho uma tabela no SqlServer sem primary key que podem ter dados repetidos em mais de uma linha, atualmente tenho um aplicativo VB6 com ADO que lê esta tabela sequencialmente e a cada linha que foi lida e processada, atualiza a coluna de status da mesma linha.

     

    Como o ADO trabalha de forma conectada, através do RecordSet, consigo ler e atualizar a mesma linha da tabela ao mesmo tempo.

     

    Estou migrando o aplicativo para a plataforma .NET com ADO.NET que trabalha de forma desconectada e como a tabela não tem primary key e pode ter dados repetidos em mais de uma linha, não consigo ler e atualizar um registro da mesma forma.

     

    Como a base de dados é do cliente, não posso alterar a tabela criando uma coluna do tipo Identity.

     

    Existe alguma pseudo-coluna em tabela do SqlServer que identifica cada linha como sendo única?

     

     

    quarta-feira, 3 de dezembro de 2008 16:42

Todas as Respostas

  • Olá,

    Bom, eu não tenho certeza se entendi exatamente seu problema, mas o ADO.Net pode trabalhar de forma desconectada também! E também não é obrigatório que exista um campo chave no bd, em vários controles vc define qual é a chave para trabalhar com os dados, como no GridView por exemplo.

    Veja: 
    http://www.macoratti.net/adn_bpu1.htm

    Espero ter ajudado!

    []s

    PS: Se o post foi útil, marque-o como resposta! ;-)
    sexta-feira, 12 de dezembro de 2008 16:10
  • Sim, pelo fato do ADO.NET trabalhar desconectado, na hora da atualização, é necessário que a tabela tenha chave primária ou colunas que identifiquem registros unicos dentro da tabela.

     

    No meu caso existem registros repetidos dentro da tabela.

     

    Não tenho problemas no antigo ADO que trabalha de forma conectada, mesmo que não tenha chave primária e tenha registros repetidos, eu consigo ler sequencialmente cada registro e atualizá-lo ao mesmo tempo.

     

    Supondo que eu tenha uma tabela com os seguintes dados e tenha que ler sequencialmente e atualizar o campo status:

     

    Codigo   Qtd   Status

    =====   ===  ====

    AAA        5

    BBB        3

    AAA        5

    BBB        3

    AAA        5

     

    Pelo ADO,NET, como posso ler sequencialmente e atualizar o campo Status?

    sexta-feira, 12 de dezembro de 2008 17:06