none
Erro com insert no mysql. RRS feed

  • Pergunta

  • E ai galera, eu sei que aqui é fórum do vb mais me ajuda por favor se alguém souber a minha duvida.

    È o seguinte estou querendo fazer uma procedure para inserir dados com o vb  no banco do mysql porem quando eu executo o script dá erro da uma olhada ai embaixo aonde eu estou errando?

    create procedure inserir_alunos

    @nome varchar(20),

    @idade numeric(2),

    @sexo varchar(10)

    as

     insert alunos (nome,idade,sexo)

    values (@nome,@idade,@sexo);

    Claro que o banco e a  tabela alunos ja ta pronta e a vesão do mysql é 5.5 

    Obrigado.

    sexta-feira, 24 de fevereiro de 2012 15:27

Respostas

Todas as Respostas

  • Olá JD,

    Qual a mensagem de erro que é disparada?

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique

    sexta-feira, 24 de fevereiro de 2012 15:32
    Moderador
  • Pelo oq pesquisei, parece que é isso:

    create procedure inserir_alunos (
    	IN nome varchar(20),
    	   idade numeric(2),
    	   sexo varchar(10))
    	BEGIN
    		insert INTO alunos (nome,idade,sexo) values (nome,idade,sexo);
    	END
    	

    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique

    sexta-feira, 24 de fevereiro de 2012 15:52
    Moderador
  • Então mano obrigado por responder então do jeito que vc postou também não deu certo!!

    do jeito que eu postei acima a mensagem é está "you have and error in your sql syntax: check the manual that correspond to your mysql server version for the right to user near  

    @nome varchar(20),

    @idade numeric(2),

    @sexo varchar(10)

    as

     insert alunos (nome, at line 2"

    Obrigado por responder.

    sexta-feira, 24 de fevereiro de 2012 16:11
  • Olá JD,

    E assim:

    create procedure inserir_alunos (
    	IN nome varchar(20),
    	IN idade numeric(2),
    	IN sexo varchar(10))
    	BEGIN
    		insert INTO alunos (nome,idade,sexo) values (nome,idade,sexo);
    	END;
    ps.: estou me baseando em alguns sites, como este: http://www.brainbell.com/tutorials/MySQL/Using_Stored_Procedures.htm
    []s!


    Fernando Henrique Inocêncio Borba Ferreira
    while(alive){ this.WriteCode(); }
    Blog: http://ferhenriquef.com/
    Twitter: @ferhenrique

    sexta-feira, 24 de fevereiro de 2012 16:21
    Moderador
  • Este script nao é valido para o MySQL.. 

    Teria que ser:

    CREATE PROCEDURE inserir_alunos 
         (
            IN  p_nome     VARCHAR(20)         , 
            IN  p_idade    INT(11)   , 
            IN  p_sexo     VARCHAR(10) 
         )
    BEGIN 
    
        INSERT INTO alunos
             (
               nome     , 
               idade    , 
               sexo  
             )
        VALUES 
             ( 
               p_nome     , 
               p_idade    , 
               p_sexo    
             ) ; 
    END 

    fonte:http://www.sqlinfo.net/mysql/mysql_stored_procedure_INSERT.php 

    essa notaçao que vc ets usando é valida somente para o SQL Server


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée


    sexta-feira, 24 de fevereiro de 2012 16:27
  • Olá Amigo boa tarde,

    seu codigo esta quase correto vc so esqueceu do into

    create procedure inserir_alunos

    @nome varchar(20),

    @idade numeric(2),

    @sexo varchar(10)

    as

     insert into alunos (nome,idade,sexo) values (@nome,@idade,@sexo);

    teste ai e vê se funciona


    Caso a resposta tenha ajudado favor marcar como respondida.

    • Sugerido como Resposta Renan Buzzi sexta-feira, 24 de fevereiro de 2012 16:30
    sexta-feira, 24 de fevereiro de 2012 16:30
  • OBRIGADO DE NOVO POR RESPONDER

    Então mano pelo  jeito que vc postou  acima tambem da erro de syntax.

    O jeito que eu postei da certinho no sqlserver 2008 porem no mysql da erro. 

    VALEU.

    sexta-feira, 24 de fevereiro de 2012 16:30
  • Também não mano da erro de syntax.

    VALEU PELA RESPOSTA.

    sexta-feira, 24 de fevereiro de 2012 16:34
  • CONGRATULATIONS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    WINER!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    kkkkkkkkkkkkkkkkkkkkkkkkkkkkk

    VALEU MANO DEU CERTINHO O SCRIPT VALEU MESMO só uma pergunta porque vc coloca as virgulas longe dos nome e ao inves de numeric vc colocou int?

    sexta-feira, 24 de fevereiro de 2012 16:41
  • eu nao sei se numeric(2) é valido para o MySQL... olhe o manual. Nao uso o MySQL aqui, entao nao tenho como testar.

     

    o fato de colocar as virgulas longe é simples questao de formataçao, nao influi no resultado

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    sexta-feira, 24 de fevereiro de 2012 16:52
  • VALEU.
    sexta-feira, 24 de fevereiro de 2012 16:56
  • MySql 5.*
    Funciona assim:
    CREATE PROCEDURE inserir_alunos (
        IN p_nome  VARCHAR(20), 
        IN p_idade INT(11), 
        IN p_sexo  VARCHAR(10) 
       )
    BEGIN
      INSERT INTO alunos
         (nome, idade, sexo)
      VALUES
         (p_nome, p_idade, p_sexo);
    END

    Veja documentação MySql.

    É ajudando os outros que ajudamos nos mesmos...

    segunda-feira, 27 de fevereiro de 2012 21:15