João Paulo, Eu realmente não conheço a fundo o Oracle, apesar de também trabalhar com ele. Como eu faço um sistema orientado a objetos sem a dependência de um banco de dados, algumas funções de determinados bancos ficam difíceis de trabalhar. Eu acredito que já tenham alguns bancos que trabalham dessa forma, no meu ultimo estudo, o Caché tinha um serviço excelente, o que pecava era a falta de compatibilidade com o Delphi. Mas quero salientar, que não sou contra os bancos de dados, apenas tenho uma visão que é o cliente que tem que escolher as ferramentas que ele vai usar. Se ele já tiver as licenças do Oracle, dificilmente ele irá querer usar um banco gratuito como o FB, e vice e versa... então eu realmente isolo o banco e só trabalho na camada de negocio. []’s Eduardo E. J. Menoncello -----Mensagem original----- De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de João Paulo Linhares Gonçalves Enviada em: sexta-feira, 13 de maio de 2005 15:55 Para: delphi-br@yahoogrupos.com.br Assunto: Re: RES: RES: [delphi-br] Auto-Incremento Os problemas são reais e acho que por isso o Oracle implementa o conceito de sequências. Quando se cria uma sequência pode-se dizer a partir de qual número a geração irá começar e a geração do número não precisa de nenhum bloqueio, é uma função otimizada dentro do banco.
Em 13/05/05, Eduardo E. J. Menoncello<[EMAIL PROTECTED]> escreveu: > João Paulo, > > Vamos para a Importação e Exportação, nos dois casos, tanto dentro do > mesmo BD quanto migrando ela tem problemas. > A menos que você crie uma rotina que nosso colega sugeriu, por exemplo: > Eu tenho um código interno de um produto de valor 350, quando eu vou > incluir ele com auto-incremento, como posso chegar a esse número? > Eu poderia criar uma rotina pra ir gerando até o número 350. Mas eu to > falando de só 350, imagine se o código for 123456, imagina o tempo que > levaria para chegar a esse número. > Em um outro caso, se por acaso no banco de dados primeiro importar o 355 > que veio numa remessa anterior e depois chegasse o 350? Acabaria sem > importar. > E a pior das hipóteses seria se o código utilizado pelo cliente contiver > letras, o que não é raro. > > A solução mais lógica, seria criar 2 códigos, um interno, que até pode > ser auto-incremento, pq só existirá no banco de dados atual, e o outro o > externo, que poderia ser alterado a vontade pelo usuário, além de poder > conter letras. Quando você exportar, ele será o código que sairá no > arquivo, e o interno não, será encapsulado no próprio banco. > > Quanto à performance, claro, tudo é relativo. Mas já trabalhei em > sistemas que tinha um alto nível de inclusão e eles tinham um sério > problema de performance, porque sempre que você grava no banco, ele tem > que alterar uma variável e gravá-la também. Então, além de acabar > gerando um tráfego a mais na rede, também tem o esquema da fila, porque > se 1000 incluírem ao mesmo tempo, o auto-incremento irá travar até que > seja liberado um por um. > > Então para solucionar o problema, e até não ter que ficar esperando o > retorno do banco de dados com o ID, a solução seria implementar um ID > que gere com o instante atual (em milisegundos) e ainda com um número > aleatório grande, para você ter absoluta certeza de que não irá incluir > o mesmo ID. E como já havia discutido na lista à um tempo atrás, o GUID > ou algo baseado nele, percebi que é a solução mais viável. > > []'s > > Eduardo E. J. Menoncello > > -----Mensagem original----- > De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] > Em nome de João Paulo Linhares Gonçalves > Enviada em: quinta-feira, 12 de maio de 2005 09:43 > Para: delphi-br@yahoogrupos.com.br > Assunto: Re: RES: [delphi-br] Auto-Incremento > > Olá, > > Que tipo de problemas de importação e exportaçãovc está falando ? Isso > é dentro do mesmo banco de dados ou migrando de um banco para outro ? > > E os problemas de performance ? pq o gargalo na gravação dos dados ? > Que tipo de auto-incremento gera tal gargalo ? > > Em 12/05/05, Eduardo E. J. Menoncello<[EMAIL PROTECTED]> > escreveu: > > Paulo, > > > > Sinceramente, eu ainda não consegui achar as vantagens, então vou > dizer > > as desvantagens... > > No auto-incremento, você tem problemas com importação e exportação, > você > > terá que criar um algoritmo pra achar a tabela relacionada, pode > ocorrer > > problemas de performance, porque se cria um gargalo na gravação dos > > dados. > > > > Sugestão: > > Como eu mesmo pedi informações por aqui, crie um campo inteiro, ou > > string, e decomponha-o, de forma que você consiga guardar nele o > > momento atual e um número relativamente grande aleatório. Por que? > Para > > que você não precise acessar o banco para criar a chave, ele no > momento > > que gravar já terá uma chave única. E com isso, reduzirá e muito o > > gargalo do sistema. > > > > Abraços > > > > Eduardo E. J. Menoncello > > > > -----Mensagem original----- > > De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] > > Em nome de Info Desenvolvimento > > Enviada em: quinta-feira, 12 de maio de 2005 09:27 > > Para: delphi-br@yahoogrupos.com.br > > Assunto: [delphi-br] Auto-Incremento > > > > Alguém pode me responder quais as vantagens e as desvantagens em se > > trabalhar com Auto-Incremento? > > > > PAULO FERNANDES > > [As partes desta mensagem que não continham texto foram removidas] -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html