RES: RES: RES: [delphi-br] Auto-Incremento

2005-05-14 Por tôpico Eduardo E. J. Menoncello
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?
>

Re: RES: RES: [delphi-br] Auto-Incremento

2005-05-14 Por tôpico João Paulo Linhares Gonçalves
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]
> >
> > Yahoo! Grupos, um serviço oferecido por:
> >
> >
>  >
> =brclubs/S=2137111264:HM/EXP=1115908131/A=2191897/R=0/SIG=10vqa2grn/*htt
> > p:/br.diversao.yahoo.com/>
> >
> >
>  >
> =brclubs/S=2137111264:HM/EXP=1115908131/A=

RES: RES: [delphi-br] Auto-Incremento

2005-05-13 Por tôpico vantuil
Olá pessoal !
 
Por falar em SQL-Server, alguém saberia onde eu poderia encontrar na
Internet uma apostila do SQL-Server 2000 estou tendo que desenvolver um
projeto onde envolve Delphi 7 e SQL-Server 2000,  fiz uma pesquisa na
Internet mas só encontrei da versão 7.0.
 
Obrigado,
Vantuil.
 
-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 12:15
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: RES: [delphi-br] Auto-Incremento
 
O SQL Server possui esse tipo de recurso (sequência, generator) ?



Em 13/05/05, Karkaju Karkamano<[EMAIL PROTECTED]> escreveu:
> Primeiro, quero declarar q é uma opnião particular minha, baseada em
> experiência:
> 
> IMHO, ESQUECAM CAMPOS AUTOINCREMENTO !!!
> 
> Você verá que vai dar o maior "cu de boi" quando vc tiver q fazer
> qualquer operação que envolva copiar registros de tabelas (como
> atualizacoes em sistemas)..
> 
> Faz o seguinte:
> a) Vc usa Access ou paradox ? Esquece ! Aborte o processo !! Não são
>bancos de dados,   e sim bandos de dados...
> b) Cria um campo numerico longo na tabela
> c) Cria uma SEQUENCE, GENERATOR ou o que teu SGBD permitir
> d) Cria uma triger no teu banco pra preencher o campo criado em (b)
com
>   o valor de (c).. Vide (a)
> e) Corra pro abraço.
> 
> Espero ter ajudado.
> 
> -
>  ( '>  [EMAIL PROTECTED]
>  //\   ICQ 2199001
> v_/_  MSN [EMAIL PROTECTED]
> 
> --
> < 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
> 
> 
> 
> 
> 


-- 
João Paulo L.G.
[EMAIL PROTECTED]




-- 
< 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 Termos do
  Serviço do Yahoo!. 


[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

 




RES: RES: [delphi-br] Auto-Incremento

2005-05-13 Por tôpico Eduardo E. J. Menoncello
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]
> 
> Yahoo! Grupos, um serviço oferecido por:
> 
>

=brclubs/S=2137111264:HM/EXP=1115908131/A=2191897/R=0/SIG=10vqa2grn/*htt
> p:/br.diversao.yahoo.com/>
> 
>

=brclubs/S=2137111264:HM/EXP=1115908131/A=2191897/R=1/SIG=10vqa2grn/*htt
> p:/br.diversao.yahoo.com/>
> São PauloRio de JaneiroCuritibaPorto AlegreBelo
> HorizonteBrasília
> 
>  _
> 
> 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 Termos
do
>   Serviço do Yahoo!.
> 
> [As par