VBScript Erreur de Nom redéfini
J'ai une boîte d'alerte, et si je suis actuellement sur la Base de données de test, je veux la boîte d'alerte d'avoir un texte différent lorsque comparé à vivre de la base de données.
Donc j'ai déclaré une variable appelée isTestDb
et mis à True
, mais je reçois cette erreur gênante:
Microsoft VBScript compilation error '800a0411'
Name redefined
myfiles/conn_open.asp, line 12
Dim isTestDb
----^
Voici mon code simple qui se trouve à l'intérieur de l'inclure à un niveau beaucoup plus élevé que celui où je suis en train de faire mon contrôle conditionnel, je suis en supposant que ce n'est pas un problème.
Dim isTestDb
isTestDb = True
-- Much Later in another file somehwere
If isTestDb Then
Response.Write("<h1>It is set to True</h1>")
Response.End
Else
Response.Write("<h1>It is set to False</h1>")
Response.End
End If
J'ai vérifié tout mon répertoire de travail, et je suis certain que la variable n'est pas définie ailleurs par le même nom, j'ai même essayé de noms différents pour la variable et a obtenu exactement la même erreur. Toute aide serait grandement appréciée.
Ne peut pas voir un problème avec le code que vous avez posté, il doit y avoir plus à lui que juste ces bits... Ce qui est sur la ligne 12 de "conn_open.asp"?
La seule chose qui est différent est où la case est en train de faire (fichier différent par le biais comprend), sinon, c'est mon code exact :/
Si vous obtenez un nom "redéfinie" erreur, alors vous certainement ont redéfini un nom. Peut-être que vous avez une Fonction/Sous ce nom d'ailleurs?
OriginalL'auteur J86 | 2013-11-13
Vous devez vous connecter pour publier un commentaire.
Cela se passe parce que la variable,
isTestDb
a déjà été définie dans une autre page.OriginalL'auteur Fox
Dans mon cas, cela était dû au fait que j'avais référencé deux fois le même fichier dans mon .fichier asp à l'aide:
Et le fichier référencé a la déclaration donc la deuxième déclaration est contraire à la première
OriginalL'auteur rdans
Je n'ai aucune idée pourquoi, mais quand j'ai enlevé le
Dim isTestDb
ligne, tout fonctionne comme prévu maintenant!! :/C'est parce que le fichier que vous comprennent conn_open.asp a également un Dim en elle
qui ne peut pas être ça, parce que j'ai utilisé des variables nommées d'après des personnages de dessin animé, et il était encore en donnant à l'erreur. @LasseEdsvik pourquoi cette question si la
Dim
dans les autres fichiers ont été nommés différemment?D'une façon générale, je recommande fortement d'écrire aucun code VB sans
Option Explicit
. D'autres que c'est difficile à cerner sans voir l'ensemble de votre code, mais l'erreur est certainement sur votre fin, pas sur le VBS fin.Si vous avez supprimé le
Dim isTestDb
ligne et il est maintenant fonctionne bien, les modifications que vous écrasez une version antérieure variable utilisée avec une portée globale. Alors qu'il semble que tout fonctionne comme prévu, étrange et difficile à déboguer les erreurs sont de leurre dans l'obscurité. Changer votre nom de la variable (faire une recherche insensible à la casse si vous n'êtes pas un oubli dans votre script!), utiliser l'option explicite et essayer de limiter l'utilisation des variables globales à un minimum.OriginalL'auteur J86
il peut être aussi parce que vous êtes y compris le fichier que vous déjà y compris dans d'autres d'inclure le fichier.
Par exemple:
Fichier un.asp est, y compris x.asp.
Et dans votre fichier principal de vous, y compris à la fois:
OriginalL'auteur Gil Allen