Estou desenvolvendo uma aplicação no netbeans + MySql e estou com o seguinte problema ao criar o módulo de vendas.
Tenho duas tabelas no banco de dados:
* VENDA
vendid autoincremento
venddata data
vendvalor double
O problema é o seguinte. Quando clico no botão NOVA VENDA o campo ID (vendid) fica em branco. Como poderei inserir os registros na tabela VENDAITEM se ainda não sei qual será o valor de vendid. Alguém sabe alguma maneira para quando eu clicar no botão NOVA VENDA já trazer o próximo valor do campo autoincremento do banco de dados e jogar na tela.
o MySQL que vai incrementar o seu campo , então depois q vc salvar e encerrar a transação com a base vai ter que fazer um select para trazer o campo inserido!
uma facilidade do MySQL eh o auto incremento… vc grava o nome e endereço por exemplo e ele gera o ID para aquela linha
tem muito banco que não é assim… em alguns vc tem que criar um gatilho no seu banco pra auto incrementar pra vc toda vez que inserir dados… ou fazer um select no banco pelo seu sistema e buscar o ultimo ID inserido pra saber qual o proximo a inserir…
Então galera, mas o problema é o seguinte… tenho a seguinte tela:
Daí como na imagem… quando eu clico no botão NOVA VENDA… o campo ID fica sem valor, só é preenchido quando eu finalizo a venda. Aí está o problema… porque os itens da venda precisam saber qual é o valor do ID. Se eu não souber o valor do ID não vou conseguir dar um insert na tabela dos itens. Por isso preciso trazer o valor do próximo ID quando eu clicar no botão NOVA VENDA.
[quote=AlissonSchneider]Posta o código do botão nova venda
flw
abrass[/quote]
aluidField.requestFocus();
botaoNovaVenda.setEnabled(false);
botaoPrimeiro.setEnabled(false);
botaoProximo.setEnabled(false);
botaoAnterior.setEnabled(false);
botaoUltimo.setEnabled(false);
botaoFinalizarVenda.setEnabled(true);
botaoCancelar.setEnabled(true);
//colocar a data do dia no campo vendadtFieldField
Date data = new Date();
String dia = "" + data.getDate();
String mes = "" + String.valueOf(data.getMonth() + 1);
String ano = "" + (1900 + data.getYear());
if (Integer.parseInt(mes) <= 9) {
mes = "0" + mes;
}
vendadtField.setText(ano + "-" + mes + "-" + dia);
habilitarCampos();
limparCampos();
seguinte como o teu campo é um auto incremento ou seja
o primeiro é 1, depois 2, 3, 4 e por ai vai cada registro novo que você insere, no caso se você puxar do banco de dados você vai puxar o ultimo e não esse que você quer imagine que vc tem 4 ou seja o ultimo vai ser 4 se você fazer um select você vai ter 4 e não o 5 que seria o próximo campo aquele que você quer ná tela.
então cria uma variável normal do tipo int crescente e ve qual é o seu último registro ou seja se for 4 o próximo logicamente será 5 né
então faz uma variável que receba 4 e seja do tipo cont que vai crescendo ou seja 4, 5, 6 cada vez que você clique no botão nova venda.
O unico problema que vai acontecer de fazer isso é que você pode excluir um campo e mudar a ordem deles mas dai você altera a variável tb
[quote=AlissonSchneider]Isso que eu vou te falar é uma gambiarra :oops:
seguinte como o teu campo é um auto incremento ou seja
o primeiro é 1, depois 2, 3, 4 e por ai vai cada registro novo que você insere, no caso se você puxar do banco de dados você vai puxar o ultimo e não esse que você quer imagine que vc tem 4 ou seja o ultimo vai ser 4 se você fazer um select você vai ter 4 e não o 5 que seria o próximo campo aquele que você quer ná tela.
então cria uma variável normal do tipo int crescente e ve qual é o seu último registro ou seja se for 4 o próximo logicamente será 5 né
então faz uma variável que receba 4 e seja do tipo cont que vai crescendo ou seja 4, 5, 6 cada vez que você clique no botão nova venda.
O unico problema que vai acontecer de fazer isso é que você pode excluir um campo e mudar a ordem deles mas dai você altera a variável tb
DEU PRA ENTENDER? :shock:
espero ter ajudado
abrass
;)[/quote]
Poxa entendi sim. Vou tentar implementar. Eu estava pensando numa coisa parecida. Fazer um select MAX no campo do id e acrescentar mais um.
Obrigado mais uma vez pela ajuda.
Um grande abraço.
[quote=AlissonSchneider]Isso que eu vou te falar é uma gambiarra :oops:
seguinte como o teu campo é um auto incremento ou seja
o primeiro é 1, depois 2, 3, 4 e por ai vai cada registro novo que você insere, no caso se você puxar do banco de dados você vai puxar o ultimo e não esse que você quer imagine que vc tem 4 ou seja o ultimo vai ser 4 se você fazer um select você vai ter 4 e não o 5 que seria o próximo campo aquele que você quer ná tela.
então cria uma variável normal do tipo int crescente e ve qual é o seu último registro ou seja se for 4 o próximo logicamente será 5 né
então faz uma variável que receba 4 e seja do tipo cont que vai crescendo ou seja 4, 5, 6 cada vez que você clique no botão nova venda.
O unico problema que vai acontecer de fazer isso é que você pode excluir um campo e mudar a ordem deles mas dai você altera a variável tb
DEU PRA ENTENDER? :shock:
espero ter ajudado
abrass
;)[/quote]
Boa noite Alisson, beleza?
Bolei o seguinte código… que está erro… o que será que estou fazendo errado:
[quote=Jalison][quote=AlissonSchneider]Isso que eu vou te falar é uma gambiarra :oops:
seguinte como o teu campo é um auto incremento ou seja
o primeiro é 1, depois 2, 3, 4 e por ai vai cada registro novo que você insere, no caso se você puxar do banco de dados você vai puxar o ultimo e não esse que você quer imagine que vc tem 4 ou seja o ultimo vai ser 4 se você fazer um select você vai ter 4 e não o 5 que seria o próximo campo aquele que você quer ná tela.
então cria uma variável normal do tipo int crescente e ve qual é o seu último registro ou seja se for 4 o próximo logicamente será 5 né
então faz uma variável que receba 4 e seja do tipo cont que vai crescendo ou seja 4, 5, 6 cada vez que você clique no botão nova venda.
O unico problema que vai acontecer de fazer isso é que você pode excluir um campo e mudar a ordem deles mas dai você altera a variável tb
DEU PRA ENTENDER? :shock:
espero ter ajudado
abrass
;)[/quote]
Boa noite Alisson, beleza?
Bolei o seguinte código… que está erro… o que será que estou fazendo errado: