Campo estrageiro nao obrigatorio dando erro do insert

Boa noite a todos.

Estou com um problema, fiz um formulario baseado em uma tabela que possui 3 campos que são chaves estrangeiras de outras tabelas, mas eles não são obrigatorios, estao definidos no BD como NULL.

So que quando clico no botao INSERIR é gerado um erro e esse erro é porque o SC está tentando gravar nesse campo ‘’ em vez de NULL, alguem poderia me dizer o que tenho que configurar para quando esses campos estrangeiros não tiverem conteúdo eles gravem NULL em vez de ‘’ (para campo varchar) e 0 (para campos numericos) ???

Obrigado pela atenção de todos ae.

Alessandro.

Irmão, se no seu banco as tabelas estiverem lincadas com relacionamento vai dar erro…
então nesse caso mesmo que vc desabilite a “critica” quando for inseri, deletar vai retornar erro, então tem que tirar o relacionamento no banco.
feito assim vc terá que tomar cuidado ao deletar algo e ficar um relacionamento de tabela solto no banco… tem esse contra de tirar o relcionamento/integridade do banco.

acho que é isso…

Jean, não há como fazer o que o Alessandro disse? Preciso da mesma coisa. Quando o relacionamento “não é forte”, ou seja, não existe obrigatoriedade por parte da tabela não deveria ser obrigado a digitar. Sempre usei assim e sempre funcionou, só no ScriptCase que ainda não encontrei como fazer isso. Exemplo: Tenho uma tabela de clientes onde não é obrigado a ter um consultor adicionado a ele, no relacionamento do banco funciona. Consigo inserir um registro, manualmente, e o relacionamento funciona… ele não apresenta erro se não colocar o código do consultor.

Eu acho que é possível se as tabelas forem MyISAM. Pois se forem InnoDB ele vai acusar relacionamento inexistente como disse o nosso amigo Jean.

Então Robert, as tabelas estão em InnoDB. Eu utilizo o PhpMyAdmin e Workbench quando preciso inserir registros de teste. Fiz um teste, crie duas tabelas: usuário(userid, username,countryid(FK)) e pais(countryid, countryname). Consegui inserir normalmente um um usuário digitando apenas seu id e nome, sem o id do pais. A ligação não está como mandatória do usuário país.
Sempre usei desse modo, o que notei é que o ScriptCase tenta incluir o valor “0” dentro do insert, quanto eu não digito nada. Claro que o banco tentará ver se há algum registro com o id 0 o que é retornará erro já que não há país com id 0.
Estou a procura de como fazer para que o ScriptCase passe o valor null ao invés de zero quando não selecionar nada.

O problema é que o sc por padrão coloca ‘’ e 0, o que você pode fazer é em uma opção que tem no campo, tem 2 selects, 1 é valor quando INSERT, e valor quando UPDATE, você coloca calculado pelo banco de dados se vazio.

Tente ai e me diga.

Perfeito, com essa opção de “Calculado pelo banco de dados se vazio” ele não tenta adicionar nada ao campo.
Problema resolvido!

Muito obrigado.

Isso mesmo, eu não havia atentado para essa opção nas configurações do campo… “Valor no Banco de Dados”
eu já os uso mas não tinha reparado a opção “calculado pelo banco de dados se vazio…”

Só lembrando a NM que no manual da V6 essa opção não aparece, pelo menos eu não consegui achar, aproveitaram inclusive o manual da V5 e alteraram o layout e adicionaram algumas coisa da V6.

esse recurso acabou de me salvar.uff

Saulo não vamos nos ater a isso né. Não precisamos de outro tópico para este tipo de assunto. xD

Tá certo meu querido…é só pra não perder o costume, e se eles estiverem mesmo consultando o forum em busca de informações de bugs e problemas relacionados fica registrado!!

Boa Tarde,

Reportei este problema para nossa equipe de bugs.

O contato direto com a nossa equipe pode ser feito através do e-mail: bugs@netmake.com.br

att,
Robert Berbert

[size=8pt]Poupando tempo dos moderadores[/size]