AUTO INCREMENTO DIRETO NO INSERT
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?
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?
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
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
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[ô])
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