AUTO INCREMENTO DIRETO NO INSERT

DANIEL.LOPES 09/01/2013 17:23:21
#417062
Bom dia

Estou desenvolvendo um sisteminha para um cliente que tem uma aplicação na web com banco MySQL ela quer pegar os dados desta base e atualizar ou inserir na base de um outro programa que ela tem. Este programa provavelmente foi desenvolvido em VB ou Delphi, mas isso é irrelevante o principal é que a base de que ele usa é o Firebird.
Até aí tudo bem fiz o sistema em vb 6 que conecta no mysql e tenta inserir no firebird, mas está dando um erro [Ô]validation error for column[Ô] pois o campo ID da tabela não aceita valores nulos e nem repetidos. O certo seria ter um autoincremento como no mysql (como to acostumado a mexer) mas no firebird pelo que vi tem que ser criado gatilhos e geradores para auto numeração, mas pelo visto ele não tem os gatilhos (trigger). E eu não posso modificar a estrutura da base de dados. Existe alguma forma de criar um autoincremento sem ter que fazer gambiarra?
VELDRAME 09/01/2013 17:29:28
#417063
Não sei isso vai mudar a estrutura.
http://www.vivaolinux.com.br/topico/Firebird/Auto-Incremento-no-Firebird


E tem isso também:
http://www.firebirdsql.org/firebirdtutorial/
http://www.firebirdsql.org/firebirdtutorial/firebird-and-ado-net-2-0.html
KERPLUNK 09/01/2013 17:37:57
#417064
Não é bem uma gambiarra, mas você pode usar como valor para o campo ID o valor máximo que ele contenha:



Insert Into Tabela(campo1, campo2, campo3) Values ((Select Max(campo1) From Tabela), [ô]XXX[ô], [ô]YYY[ô])
LLAIA 09/01/2013 17:53:50
#417066
Vc precisa ver, como o outro sistema cria os IDs. Se ele não está usando GENERATORS, deve tá sendo usada alguma regra pra geral os identificadores.
Faça seu login para responder