Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
aldeyf

Erro de Inserção

Recommended Posts

Olá pessoal, eu fiz uma procedure no mysql para inserir dados:

CREATE DEFINER=`root`@`localhost` PROCEDURE `cadastra_usuario`(IN v_nome VARCHAR(15), IN v_email VARCHAR(40), IN v_senha VARCHAR(20), IN v_sobrenome VARCHAR(30), IN v_aniversario DATE, IN v_tipo VARCHAR(15))

BEGIN

INSERT INTO tbusuario(strnome, stremail, strsenha, strsobrenome, dtmaniversario, strtipo) VALUES (v_nome, v_email, v_senha, v_sobrenome, v_aniversario, v_tipo);

END

e na hora de salvar no cadastro do formulario q eu fiz em asp.net(aspx) deu o seguinte erro:

Column 'strsobrenome' cannot be null

alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que no seu sistema, você está passando um valor NULO para o quarto parâmetro, aí dá erro no SQL quando executa a procedure.

Tente ver se é isso, mas creio que sim.

EDIT----------

Poderia não estar dando erro, se o campo strsobrenome tivesse sido criado como

NULL YES

mas acho que você criou como NOT NULL, que creio ser melhor, realmente.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao sabia que dava pra criar stored procedures no mysql.. eu ja tentei uma vez.. ele ate executa os comandos mas nao aconteceu nada.. bem eu nunca usei esse tipo de coisa.. ate tenho curiosidade em aprender isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae DIF, se interessar, segue trecho de um DOC que eu faço para não esquecer comandos ^^

nesse "DOC" está como criar uma procedure simplesinha que fiz de teste com valor NULL, os comando para pesquisar, alterar, excluir um procedure


*-------------------------------------------------------------------------
STORE PROCEDURE
*-------------------------------------------------------------------------
DELIMITER $$

DROP PROCEDURE IF EXISTS ECOECO $$

CREATE PROCEDURE ECOECO( IN teste DECIMAL( 12,2 ) )

BEGIN
DECLARE VAR_TESTE DECIMAL( 10,2 );

SET VAR_TESTE:=10;

IF (TESTE = 0) THEN
BEGIN
SELECT 2;
END;
ELSEIF TESTE IS NULL THEN
BEGIN
SELECT 3;
END;
END IF;

SELECT var_teste,teste,var_teste+teste;
END$$

DELIMITER ;

CALL sp_name([parameter[,...]]) // O comando CALL é usado para chamar uma rotina que foi definida anteriormente com CREATE PROCEDURE.

SHOW PROCEDURE|FUNCTION STATUS [LIKE pattern] //Exibe as procedures ou funções criadas

SHOW CREATE PROCEDURE|FUNCTION sp_name //Exibe estrutura da procedure ou função que se deseja

ALTER PROCEDURE|FUNCTION sp_name [characteristic ...] //usado para alterar o nome de uma SP ou func
characteristic:
NAME newname
| SQL SECURITY {DEFINER | INVOKER}
| COMMENT string

DROP PROCEDURE|FUNCTION [IF EXISTS] sp_name //Excluir SP ou func

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Acho que no seu sistema, você está passando um valor NULO para o quarto parâmetro, aí dá erro no SQL quando executa a procedure.

    Tente ver se é isso, mas creio que sim.

    EDIT----------

    Poderia não estar dando erro, se o campo strsobrenome tivesse sido criado como

    NULL YES

    mas acho que você criou como NOT NULL, que creio ser melhor, realmente.

    Cara valeu você me ajudou pra caramba:)

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    estou com um problema parecido para salvar no banco de dados da erro veja as páginas são bem basicas

    cadastro.htm

    <html>

    <head>

    <title>Cadastro</title>

    </head>

    <body>

    <h3>Formulário de cadastro</h3>

    <form action="insere.php" method="post">

    Nome: <input type="text" name="nome" />

    <br />

    Username: <input type="text" name="user" />

    <br />

    Email: <input type="text" name="email" />

    <br />

    <input type="submit" value="Cadastrar" />

    </form>

    </body>

    </html>

    agora esse arquivo insere.php é o comando para conexão com o banco de dados mas aparece o seguinte "Erro, não possível inserir no banco de dados" veja arquivo

    <?php

    //verifica se existe conexão com bd, caso não tenta criar uma nova

    $conexao = mysql_connect("localhost","marcos","120510") //porta, usuário, senha

    or die("Erro na conexão com banco de dados"); //caso não consiga conectar mostra a mensagem de erro mostrada na conexão

    $select_db = mysql_select_db("marcos_victoria"); //seleciona o banco de dados

    //Abaixo atribuímos os valores provenientes do formulário pelo método POST

    $nome = $_POST["nome"];

    $user = $_POST["user"];

    $email = $_POST["email"];

    $string_sql = "INSERT INTO pessoa (id,nome,user,email) VALUES (null,'$nome','$user','$email')"; //String com consulta SQL da inserção

    mysql_query($string_sql,$conexao); //Realiza a consulta

    if(mysql_affected_rows() == 1){ //verifica se foi afetada alguma linha, nesse caso inserida alguma linha

    echo "<p>Cadastro feito com sucesso</p>";

    echo '<a href="cadastro.htm">Voltar para formulário de cadastro</a>'; //Apenas um link para retornar para o formulário de cadastro

    } else {

    echo "Erro, não possível inserir no banco de dados";

    }

    mysql_close($conexao); //fecha conexão com banco de dados

    ?>

    se puder me ajudar??? agradeço

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    amigo você esta na seção errada.. mas tudo bem.. vejo que seu arquivo php nao esta bem organizado.. faça desta forma:

    conexao.php


    <?php
    $conexao = mysql_connect("localhost","marcos","120510") or die("Erro na conexão com banco de dados");
    $banco = mysql_select_db("marcos_victoria", $conexao);
    ?>


    <?php

    //Abaixo atribuímos os valores provenientes do formulário pelo método POST

    $nome = $_POST["nome"];
    $user = $_POST["user"];
    $email = $_POST["email"];

    //inclui o arquivo conexao.php responsável por conectar no seu banco de dados
    include 'conexao.php';

    //String com consulta SQL da inserção
    $string_sql = "INSERT INTO pessoa (nome,user,email) VALUES ('$nome','$user','$email')";

    //executa a instruçao SQL
    $dados = mysql_query($string_sql);

    //verifica se foi afetada alguma linha, nesse caso inserida alguma linha
    if($dados){

    echo"<script>
    alert('Cadastro feito com sucesso');
    window.location='cadastro.htm';
    </script>";
    } else {

    echo"<script>
    alert('Erro, não possível inserir no banco de dados');
    history.go(-1);
    </script>";

    }
    //fecha conexão com banco de dados
    mysql_close($conexao);

    ?>

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Nossa cara funcionou, e eu me matando alterei meus arquivos como voce disse e parece que foi como magica!!!!!!!!!!

    muito obrigado........

    vou dar uma estudada nesse tutorial que mandou para entender aonde estava errando!!!

    até mais

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Nossa cara funcionou, e eu me matando alterei meus arquivos como voce disse e parece que foi como magica!!!!!!!!!!

    muito obrigado........

    vou dar uma estudada nesse tutorial que mandou para entender aonde estava errando!!!

    até mais

    "aldeyf" Não sei se já resolveu seu problema, mas se não, pelo que eu vi do erro o problema é que a consulta que você definiu pra o insert está trazendo o campo strsobrenome com valor null, quando criamos as tabelas o padrão é que os registros não poderão estar nulos.

    Editado por Denis Bopp
    Erro no destinatário.
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Basta alterar a coluna que esta gerando erro para permitir valores nulos, ou tratar para quando não houver valores passar uma string vazia.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • deu certo sim valeu, obrigado por me ajudarem

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×