J'essaie d'obtenir la gauche 7 caractères d'une colonne, et la totalité d'une deuxième colonne d'une table dans ma base de données. Le code que j'utilise pour faire cela ressemble à ceci (moins la chaîne de connexion, je ne veux pas le donner).ASP classique Comment se référer à un champ, je changeai avec GAUCHE
Set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "myConnectionString"
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT DISTINCT LEFT(Location,7), StopID FROM LocStop", conn
do until rs.eof
Response.Write(rs("Location"))
Response.Write(rs("StopID"))
rs.movenext
loop
Cela donne l'erreur « erreur ADODB.Recordset « 800a0cc1 » article ne se trouve dans la collection correspondant au nom demandé ou ordinal. » sur la ligne Response.Write(rs("Location"))
. L'utilisation rs.fields("Location")
échoue de la même manière
Quand je lance ce code sans GAUCHE appeler cela fonctionne très bien. Ma conjecture est que le nom de colonne Location n'est pas pris ou est changé quand j'utilise LEFT dessus. Je ne sais pas comment je suis maintenant censé obtenir cette information maintenant. Est-ce que quelqu'un sait si ma supposition était correcte, et comment obtenir l'information dont j'ai besoin?
Une fois que vous tournez une colonne dans une * colonne calculée (appliquer une fonction pour changer le résultat) * vous ne référencez plus cette colonne particulière, mais une colonne calculée maintenant séparée qui doit être aliasé . Cependant, il n'y a aucune raison de ne pas utiliser le nom de colonne existant i.e 'LEFT (Location, 7) [Location]' fonctionnera par exemple. – Lankymart
Encore un autre doublon possible [jeu d'enregistrements ASP Classic impossible de voir les colonnes avec le format 'table.column_name' après la conversion MySQL] (http://stackoverflow.com/q/33263086/692942) * (ignorer la partie MySQL même problème s'applique à travers plusieurs fournisseurs qui utilisent ADODB) *. – Lankymart