jeey Posté(e) le 4 avril 2005 Partager Posté(e) le 4 avril 2005 Bonjour !!! Je galère quelque peu pour trouver d'où provient une erreur SQL... Je programme un site en ASP avec une base SQL Server... J'ai une requête qui ne marche pas, et voici ce que me donne l'analyseur de requête SQL quand je lui en cause... La requête en question : INSERT INTO Interventions(Num_inter,ET_code,Num_AR,Mois_AR,Num_Com,Num_Ass,Num_cli,IC_numero, FichePN,FicheDesc,BU,Description,Date_saisie,Nbj_tot,Prix_tot,frais,incidents,prerequis,blocage, attentematos,prestastandard,livraison,valid,validtech) VALUES ("INTER0504001"," "," "," ","55","56","249","358"," "," "," ","az","04/04/2005"," "," "," "," "," "," ","0","0","0"," "," "," ") Et l'erreur qu'il me renvoie : Serveur : Msg 128, Niveau 15, État 1, Ligne 1 Le nom 'INTER0504001' n'est pas autorisé dans ce contexte. Seules sont autorisées ici des constantes, des expressions ou des variables. Les noms de colonnes ne sont pas autorisés. Allez comprendre.... enfin, moi je comprends plus... Bon, et tant que vous êtes chaud, et afin de démarquer les ex-aequo, je galère aussi au niveau des fonctions, en effet, je fais appel à une fonction, mais la variable envoyée en paramètre me revient sans modifications, il s'agit apparemment d'histoires de varaibles globales ou pas... ' Nettoyage caractères spéciaux des champs function nettoie_char(variable_char) variable_char=Replace(variable_char,"'","''") variable_char=Replace(variable_char,"<","<") variable_char=Replace(variable_char,">",">") variable_char=Replace(variable_char,vbCrLf,"<br>") end function description=Request.QueryString("description") description=nettoie_char(description) Alors les Bossss ? EDIT de theo : balise qui déformait la page Lien vers le commentaire Partager sur d’autres sites More sharing options...
tsubasaleguedin Posté(e) le 4 avril 2005 Partager Posté(e) le 4 avril 2005 the boss is PhP Lien vers le commentaire Partager sur d’autres sites More sharing options...
jeey Posté(e) le 4 avril 2005 Auteur Partager Posté(e) le 4 avril 2005 C'eut été du PHP, j'eusse pu m'en sortir ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
LePhasme Posté(e) le 4 avril 2005 Partager Posté(e) le 4 avril 2005 tu n'aurais pas déclaré num_inter en entier ? Du coup en mettant des lettres ca bug... Lien vers le commentaire Partager sur d’autres sites More sharing options...
jpriton Posté(e) le 5 avril 2005 Partager Posté(e) le 5 avril 2005 Tu ne dois pas mettre de quote pour des valeurs numériques. Un conseil, utilise des procédures stockées directement sous SQL, c'est bien plus sûr et rapide. Exemple de Stored procedure: CREATE PROCEDURE Nom_de_la_procedure @login nvarchar(20), @motdepasse nvarchar(10) AS if @motdepasse <> '' and @login <> '' begin INSERT INTO MA_TABLE(LOGIN, MOTDEPASSE) VALUES (@login, @motdepasse) SELECT @@IDENTITY /* retourne l'id de l'enregisrement */ end else SELECT 0 /* retourne 0 */ GO L'intérêt est que la requête est validée par le serveur d'ou un gain de temps à l'execution et que tu peux y insérer du code de contrôle et de renvoi. Lien vers le commentaire Partager sur d’autres sites More sharing options...
yuyugs84 Posté(e) le 5 avril 2005 Partager Posté(e) le 5 avril 2005 Salut bon je vais tenter de t'aider... Je code sous vb et vba alors ca devrait pas etre bien different Pour ton code : function nettoie_char(variable_char) Lorsque je cré ma fonction, je declare les variables qu'elle recoit dans la parenthese c'est à dire : function nettoie_char(variable_char) devient function nettoie_char(variable_char as string) exemple pour une fonction qui nettoie le contenu d'une cellule de tableau : Ma fonction : Private Sub Clean_Cell(VL_Value_To_Clean As String) blablabla... VL_Value_To_Clean = resultat des actions faites dans la fonction End sub J'appel ma fonction ainsi : Call Clean_Cell VL_Cell_Value et j'ai pris soin de déclarer ma variable dans la fonction qui va faire l'appel : Dim VL_Cell_Value As String Capice ??? Bon je vais regarder pour ta requête... Tchô Lien vers le commentaire Partager sur d’autres sites More sharing options...
jpriton Posté(e) le 6 avril 2005 Partager Posté(e) le 6 avril 2005 escuse j'avais pas vu ta deuxième question sur les fonctions. A aucun moment tu retourne une valeur donc c'est pas une focntion mais une procédure (toute la différence est là) En ASP pour qu'une fonction te retourne une valeur, c'est simple: Function Ma_Fonction(Paramètre) Ma_Fonction = Paramètre + 10 'retourne la valeur End Function Ma_Valeur = Ma_Fonction(10) 'Ma_Valeur = 20 Lien vers le commentaire Partager sur d’autres sites More sharing options...
jeey Posté(e) le 13 avril 2005 Auteur Partager Posté(e) le 13 avril 2005 Miciii ! Bon, je vais zieuter ça et je vous tiens au courant (enfin, surtout si ça ne marche pas ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.