Aller au contenu

Problème ASP/SQL: erreur dans la requête


jeey

Messages recommandés

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,"<","&lt")
variable_char=Replace(variable_char,">","&gt")
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

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

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

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

:D

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...