Rcast 0 Denunciar post Postado Agosto 20, 2008 Versão do cliente MySQL: 5.0.51a Tabelas em INNODB Segue abaixo o codigo e o erro: ------------------------------------------------------------------------------------------------------------- CREATE PROCEDURE T01_Membros.InsMembro( @nome VARCHAR( 40 ) , @documento varchar( 20 ) , @sexo char( 1 ) , @endereco varchar( 60 ) , @cidade varchar( 30 ) , @estado char( 2 ) , @tel_1 varchar( 10 ) , @tel_2 varchar( 10 ) , @login_email varchar( 40 ) , @senha varchar( 24 ) , @codigoconfirma tinyint( 4 ) , @confirmado tinyint( 1 ) , @data_nasc date, @tipoconta tinyint( 3 ) , @data_cadastro varchar( 10 ) , @ultimo_acesso varchar( 10 ) ) AS INSERT INTO usuario( C01_nome, C01_documento, C01_sexo, C01_endereco, C01_cidade, C01_estado, C01_tel_1, C01_tel_2, C01_login_email, C01_senha, C01_codigoconfirma, C01_confirmado, C01_data_nasc, C01_tipo_conta, C01_data_cadastro, C01_ultimo_acesso ) VALUES ( @nome , @documento , @sexo , @endereco , @cidade , @estado , @tel_1 , @tel_2 , @login_email , @senha , @codigoconfirma , @confirmado , @data_nasc , @tipoconta , @data_cadastro , @ultimo_acesso ) SET @login_email = @ @IDENTITY Mensagens do MySQL : Documentação #1064 - Você tem um erro de sintaxe no seu SQL próximo a '@nome VARCHAR(40), @documento varchar(20), @sexo char(1), @endereco var' na linha 3 ------------------------------------------------------------------------------------------------------------------- Ja tentei tirar espaço, colocar espaço, tirar virgula, colocar ponto e virgula, google, site do mysql e nao consegui achar a solução Alguem consegue me ajudar? Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
cassitos 2 Denunciar post Postado Agosto 20, 2008 dá uma olhada nesta documentação: http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html Tem esta matéria no iMasters: http://imasters.com.br/artigo/7556/mys...dures_no_mysql/ você vai ter que adaptar esta sua procedure para a sintax do MySql. Está bem diferente. Esta sintax que você está utilizando é de qual banco? SQL Server? Bom, de qualquer forma vai ter que reescrever esta procedure para o MySQL. Se ainda tiver dúvidas posta ae... Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Agosto 20, 2008 Dieferenças entre Stored Procedures no SQL Server e no MySQL são grandes. Enquanto no SQL Server, que se escreve com a linguagem T-SQL, @var é uma variável local, no MySQL variáveis locais são declaradas sem o @. CREATE PROCEDURE imasters(IN num INT) BEGIN DECLARE var INT DEFAULT 0; ... END;O tipo de variável no MySQL que utiliza o @, se chamam user variables, e estas não necessitam de declaração.Podem ser inicializadas assim: SET @var = 'Wagner Bianchi'; SELECT @var := coluna FROM tabela;Na verdade, você terá alguns pontos de dificuldade para reescrever seu procedimento, mas você consegue.Dê um lida nestes artigos: Stored Porcedures parte 1: http://imasters.com.br/artigo/7556/mys...dures_no_mysql/ Stored Porcedures parte 2 (Transações): http://imasters.com.br/artigo/7755/mys...s_-_transacoes/ Happy MySQL'ing!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Rcast 0 Denunciar post Postado Agosto 20, 2008 Era em SQL Server a consulta anterior sim.. Consegui passar pra Mysql, foi fácil até.. Caso alguem queira usar para consultas futuras ficou assim o código: ------------------------------------------------------------------------------------------ DROP PROCEDURE IF EXISTS InsMembro; CREATE PROCEDURE InsMembro ( v_nome VARCHAR(40), v_documento varchar(20), v_sexo char(1), v_endereco varchar(60), v_cidade varchar(30), v_estado char(2), v_tel_1 varchar(10), v_tel_2 varchar(10), v_login_email varchar(40), v_senha varchar(24), v_codigoconfirma tinyint(4), v_confirmado tinyint(1), v_data_nasc date, v_tipoconta tinyint(3), v_data_cadastro varchar(10), v_ultimo_acesso varchar(10) ) INSERT INTO banco.tabela (C01_nome, C01_documento, C01_sexo, C01_endereco, C01_cidade, C01_estado, C01_tel_1, C01_tel_2, C01_login_email, C01_senha, C01_codigoconfirma, C01_confirmado, C01_data_nasc, C01_tipo_conta, C01_data_cadastro, C01_ultimo_acesso) VALUES (v_nome, v_documento, v_sexo, v_endereco, v_cidade, v_estado, v_tel_1, v_tel_2, v_login_email, v_senha, v_codigoconfirma, v_confirmado, v_data_nasc, v_tipoconta, v_data_cadastro, v_ultimo_acesso) ------------------------------------------------------------------------------------------------------ Obrigado pela ajuda! Compartilhar este post Link para o post Compartilhar em outros sites