Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Problemas no Exemplo do VFP em Rede
Message
General information
Forum:
Visual FoxPro
Category:
Databases,Tables, Views, Indexing and SQL syntax
Miscellaneous
Thread ID:
00813668
Message ID:
00814570
Views:
7
Ainda não utilizei o VFP 8 mas o SQL SERVER possui campo de auto incremento, é bastante prático mas se vc tiver que fazer algumas mudanças de servidores, bancos, bkps etc. vc pode ter alguns problemas.

eu não utilizo estes campos para chave primária por opção particular, sempre criei a minha numeração e faço isso até hoje.

Os campos de auto incremento eu utilizo apeans para exibir um contador ao usuário, algo tipo código do cliente, nro do pedido, etc.


>É uma idéia a se pensar.
>
>Vc já usou o campo AutoInc do VFP 8 ? me parece que no SQL Server também tem um desses vc não gosta de usa-lo ?
>
>
>>Paulo eu costumo utilizar um ID único para todas as tabelas do sistema, ou seja um contador sequencial só. Desta forma eu tenho uma unica tabela de contador com um único campo.
>>
>>Não mostro esta informação para o usuário, utilizo-a apenas para carregar chaves primárias. Faço isso com todos os bancos que eu trabalho, desde o nativo do VFP, SQL SERVER e ORACLE.
>>
>>
>>
>>
>>>Este código veio com o VFP 8, e vou testar com tabelas livres. No VFP 8 estou usando campos AutoInc, e tem funcionado corretamente, tenho algumas dúvidas sobre a recuperação do Id, no insert-sql, que já coloquei aqui em outra Thread.
>>>
>>>Vou fazer os testes com tabelas livres e te respondo.
>>>
>>>Obrigado pela ajuda.
>>>
>>>>Olá Paulo
>>>>
>>>>Começando pelo fim: também já tive problemas com SET DATASESSION e parei de usá-lo.
>>>>
>>>>tem algo errado no código abaixo, ele não faz um APPEND BLANK quando a lcAlias não é encontrado:
>>>>
>>>>
>>>>  IF SEEK(lcAlias, "Ids", "table")
>>>>    IF RLOCK()
>>>>      lnID = ids.nextid
>>>>      REPLACE ids.nextid WITH ids.nextid + 1
>>>>      UNLOCK
>>>>    ENDIF
>>>>  ENDIF
>>>>
>>>>
>>>>Normalmente faço assim:
>>>>
>>>>
>>>>  IF NOT SEEK(lcAlias, "Ids", "table")
>>>>     APPEND BLANK  IN Ids
>>>>     REPLACE table WITH lcAlias  IN Ids
>>>>  ENDIF
>>>>  IF RLOCK("Ids")
>>>>     lnID = ids.nextid
>>>>     REPLACE ids.nextid WITH ids.nextid + 1  IN Ids
>>>>     UNLOCK  IN Ids
>>>>  ENDIF
>>>>
>>>>
>>>>O detalhe final e que me resolveu esses problemas com transações: uso uma tabela livre para gravar os Ids, pois tabelas livres não são consideradas em transações.
>>>>
>>>>Espero que ajude
Previous
Reply
Map
View

Click here to load this message in the networking platform