par
caidoz » 16 déc. 2008, 10:28
Bonjour,
j'ai crée un petit projet personnel d'auto formation pour visual studio (C# winForm).
J'utilisais dans mon projet un Base de Donnée MS SQL Serveur (version manager).
Mon projet porte sur le classement et la recherche de position de yoga et intéresse finalement plusieurs amis.
Je souhaite donc leurs passer le .EXE mais vu que la BD est uniquement sur mon PC sa bloque (logique).
Je souhaite donc passer la base de donnée sur mon hébergeur sous MySql 5.0.45
Là j'essaie simplement de convertir mes procédures stockées.
Voici le code de mon "ancienne" procédure :
Code : Tout sélectionner
Create PROCEDURE Select_User
@user_Nom nvarchar(50),
@user_Pass nvarchar(255) OUTPUT,
@user_Lvl int OUTPUT
AS
SET @user_Pass = (SELECT usr_Pass FROM Utilisateur WHERE usr_Nom=@user_Nom)
SET @user_Lvl = (SELECT usr_Lvl FROM Utilisateur WHERE usr_Nom=@user_Nom)
RETURN
J'ai donc essayer de traduire cela en :
Code : Tout sélectionner
CREATE PROCEDURE Select_User
(IN _userNom varchar(50), OUT _userPass varchar(255), OUT _userLvl int)
BEGIN
SET _userPass = (SELECT usr_Pass FROM Utilisateur WHERE usr_Nom=_userNom);
SET_userLvl = (SELECT usr_Lvl FROM Utilisateur WHERE usr_Nom=_userNom);
END
Mais lors de l'exécution j'obtiens l'erreur
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
Je cherche depuis hier après midi comment se font les procédures sous MySql et les doc que je trouve ou exemple ne me sont pas clair et n'arrive pas a trouver mon erreur ?
(Shéma de la base )
Code : Tout sélectionner
-- --------------------------------------------------------
--
-- Structure de la table `Yoga_Utilisateur`
--
CREATE TABLE `Yoga_Utilisateur` (
`usr_ID` int(11) NOT NULL auto_increment,
`usr_Nom` varchar(50) NOT NULL default '',
`usr_Pass` varchar(255) NOT NULL default '',
`usr_Lvl` int(11) NOT NULL default '0',
PRIMARY KEY (`usr_ID`),
UNIQUE KEY `usr_Nom` (`usr_Nom`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
--
-- Contenu de la table `Yoga_Utilisateur`
--
INSERT INTO `Yoga_Utilisateur` VALUES (1, 'MonNom', 'MonPassCryptéMd5', 1000);
Bonjour,
j'ai crée un petit projet personnel d'auto formation pour visual studio (C# winForm).
J'utilisais dans mon projet un Base de Donnée MS SQL Serveur (version manager).
Mon projet porte sur le classement et la recherche de position de yoga et intéresse finalement plusieurs amis.
Je souhaite donc leurs passer le .EXE mais vu que la BD est uniquement sur mon PC sa bloque (logique).
Je souhaite donc passer la base de donnée sur mon hébergeur sous MySql 5.0.45
Là j'essaie simplement de convertir mes procédures stockées.
Voici le code de mon "ancienne" procédure :
[code]Create PROCEDURE Select_User
@user_Nom nvarchar(50),
@user_Pass nvarchar(255) OUTPUT,
@user_Lvl int OUTPUT
AS
SET @user_Pass = (SELECT usr_Pass FROM Utilisateur WHERE usr_Nom=@user_Nom)
SET @user_Lvl = (SELECT usr_Lvl FROM Utilisateur WHERE usr_Nom=@user_Nom)
RETURN[/code]
J'ai donc essayer de traduire cela en :
[code]CREATE PROCEDURE Select_User
(IN _userNom varchar(50), OUT _userPass varchar(255), OUT _userLvl int)
BEGIN
SET _userPass = (SELECT usr_Pass FROM Utilisateur WHERE usr_Nom=_userNom);
SET_userLvl = (SELECT usr_Lvl FROM Utilisateur WHERE usr_Nom=_userNom);
END[/code]
Mais lors de l'exécution j'obtiens l'erreur
[quote]#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5 [/quote]
Je cherche depuis hier après midi comment se font les procédures sous MySql et les doc que je trouve ou exemple ne me sont pas clair et n'arrive pas a trouver mon erreur ?
(Shéma de la base )
[code]-- --------------------------------------------------------
--
-- Structure de la table `Yoga_Utilisateur`
--
CREATE TABLE `Yoga_Utilisateur` (
`usr_ID` int(11) NOT NULL auto_increment,
`usr_Nom` varchar(50) NOT NULL default '',
`usr_Pass` varchar(255) NOT NULL default '',
`usr_Lvl` int(11) NOT NULL default '0',
PRIMARY KEY (`usr_ID`),
UNIQUE KEY `usr_Nom` (`usr_Nom`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
--
-- Contenu de la table `Yoga_Utilisateur`
--
INSERT INTO `Yoga_Utilisateur` VALUES (1, 'MonNom', 'MonPassCryptéMd5', 1000);[/code]