Pessoal,
tenho um formulário de orçamento e outro grid de itens de orçamentos, linkados através do numero de orçamento. Porém quando coloco incremento automático da erro. Porque ocorre esse erro?
Grato,
Tiago Sanches
Pessoal,
tenho um formulário de orçamento e outro grid de itens de orçamentos, linkados através do numero de orçamento. Porém quando coloco incremento automático da erro. Porque ocorre esse erro?
Grato,
Tiago Sanches
increment automatico em qual aplicação? quais as chaves dessa tabela? qual o erro pelo menos?
No detalhe o campo com incremento automático deve ser a chave primária e não o campo de ligacao com o mestre. Dê uma observada.
então estou colocando incremento automatico no numero de orçamento e linkando este campo do numero do orçamento com o grid de itens do orçamento, dai da erro de banco de dados ao executar a aplicação.
Se eu tirar o incremente automático funciona perfeitinho, porém tenho que inserir o numero do orçamento manualmente.
Grato,
Tiago Sanches
o numero do orcamento no detalhe nao pode ser autoincremento ne?
orcamento 1, item 1
orcamento 1, item 2 …
quem tem que ser auto incremento no detalhe eh o codigo do item e nao a chave q ele recebe do pai … por isso seria melhor detalhar a sua estrutura.
Orçamento Venda:
varchar(9) latin1_swedish_ci Não None
cnpjclifor varchar(16) latin1_swedish_ci Sim NULL
compradorcli varchar(100) latin1_swedish_ci Sim NULL
dataemissao date Sim NULL
dataentrega date Sim NULL
status varchar(1) latin1_swedish_ci Sim NULL
idformapagto varchar(5) latin1_swedish_ci Sim NULL
observacoes text latin1_swedish_ci Sim NULL
valor_frete decimal(10,4) Sim NULL
codvendedor varchar(5) latin1_swedish_ci Sim NULL
ValorPedido decimal(15,4) Sim NULL
comissao_vendedor decimal(10,4) Sim NULL
ValorPedidoOrc decimal(15,4) Sim NULL
cnpjcpftransportadora varchar(16) latin1_swedish_ci Sim NULL
usuariocriacao varchar(60) latin1_swedish_ci Sim NULL
usuarioalteracao
Itens orçamento venda:
numeroorcvarchar(9) latin1_swedish_ci Sim NULL
codprd varchar(20) latin1_swedish_ci Sim NULL
undmed varchar(70) latin1_swedish_ci Sim NULL
Qtd decimal(10,4) Sim NULL
comprimento double(12,4) Sim NULL
largura double(12,4) Sim NULL
desconto_vendedor int(1) Sim NULL
desconto_gerente int(2) Sim NULL
icms decimal(8,2) Sim NULL
ipi decimal(8,2) Sim NULL
aprovadopelocliente int(1) Sim NULL
qtdcompradapelocliente decimal(10,4) Sim NULL
nrseqitens bigint(20) Não None auto_increment primary key
peso_por_metro double(10,4) Sim NULL
Total double(15,4) Sim NULL
Total_Vendido double(15,4) Sim NULL
No formulario mestre/detalhe linquei os dois campos numero orc.
esta correto?
numeroorc como varchar?
e quais campos sao autoincremento?
Se nos itens orçados o produto nao puder se repetir, voce nem vai precisar de um campo autoincremento. Apens chave primaria composta do numeroorc+codprd
Mas nas tabelas … como Harold falou … n eram pra ser inteiro autoincremento?
Verdade, eu mexi em tanta coisa buscando fazer esse negócio funcionar que acabei é ferrando outras coisas, bom, refiz meu banco de dados:
ITENS ORÇAMENTO VENDAS:
CREATE TABLE IF NOT EXISTS intensorcvendabit
(
numeroorc
bigint(20) DEFAULT NULL,
codprd
varchar(20) DEFAULT NULL,
undmed
varchar(70) DEFAULT NULL,
Qtd
decimal(10,4) DEFAULT NULL,
comprimento
double(12,4) DEFAULT NULL,
largura
double(12,4) DEFAULT NULL,
desconto_vendedor
int(1) DEFAULT NULL,
desconto_gerente
int(2) DEFAULT NULL,
nrseqitens
bigint(20) NOT NULL AUTO_INCREMENT,
peso_por_metro
double(10,4) DEFAULT NULL,
Total
double(15,4) DEFAULT NULL,
Total_Vendido
double(15,4) DEFAULT NULL,
PRIMARY KEY (nrseqitens
)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ORÇAMENTO VENDA:
CREATE TABLE IF NOT EXISTS orcamento_vendabit
(
numeroorc
bigint(20) DEFAULT NULL,
cnpjclifor
varchar(16) DEFAULT NULL,
compradorcli
varchar(100) DEFAULT NULL,
dataemissao
date DEFAULT NULL,
dataentrega
date DEFAULT NULL,
status
varchar(1) DEFAULT NULL,
idformapagto
varchar(5) DEFAULT NULL,
observacoes
text,
valor_frete
decimal(10,4) DEFAULT NULL,
codvendedor
varchar(5) DEFAULT NULL,
ValorPedido
decimal(15,4) DEFAULT NULL,
comissao_vendedor
decimal(10,4) DEFAULT NULL,
ValorPedidoOrc
decimal(15,4) DEFAULT NULL,
cnpjcpftransportadora
varchar(16) DEFAULT NULL,
usuariocriacao
varchar(60) DEFAULT NULL,
usuarioalteracao
varchar(60) DEFAULT NULL,
PRIMARY KEY (numeroorc
)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
agora vou linkar no formulario mestre detalhe, os campos numeroorc
esta correto?
correto. n esquece de re-sincronizar as aplicacoes para atualizar os tipos de dados.
checa no detalhe se o campo ta como auto incremento … e ai eh pra ficar tudo blz.
qualquer duvida, poe em modo debug e tira um print que ai a gente ja ve o problema.
esse ai é o erro fazendo o banco de dados daquela forma:
Erro ao incluir na base de dados:
Entrada ‘0’ duplicada para a chave ‘PRIMARY’
INSERT INTO orcamento_venda (cnpjclifor, compradorcli, dataemissao, dataentrega, status, idformapagto, observacoes, valor_frete, codvendedor, ValorPedido, comissao_vendedor, ValorPedidoOrc, cnpjcpftransportadora, usuariocriacao, usuarioalteracao) VALUES (‘60746831000139’, ‘sdfs’, ‘2010-10-29’, null, ‘3’, ‘’, ‘’, 0, ‘2’, 0, 0, 0, ‘04828291000161’, ‘’, ‘’)
voce nao informou que a chave primaria é auto incremento no banco …
puts, verdade eu alterei tudo o banco e esqueci de colocar auto incremento na chave primaria do orçamento, bingo… funcionou… muito obrigado !!!
:-p