Я пытаюсь получить левые 7 символов столбца и весь второй столбец из таблицы в моей базе данных. Код, который я использую для этого, выглядит так (за вычетом строки подключения, не хочу его отдать).Классический ASP Как сослаться на поле, которое я изменил с помощью LEFT
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
Это дает ошибку «ADODB.Recordset ошибка„800a0cc1“ Элемент не может быть найден в коллекции, соответствующей запрашиваемое имя или порядковый номер.» на линии Response.Write(rs("Location"))
. Сбой rs.fields("Location")
Когда я запускаю этот код без вызова LEFT, он работает нормально. Я предполагаю, что имя столбца «Местоположение» либо не принято, либо изменено, когда я использую LEFT на нем. Я в недоумении относительно того, как теперь я должен получить эту информацию. Кто-нибудь знает, правильно ли было мое предположение, и как получить необходимую информацию?
После того, как вы включите столбец в вычисляемый столбец * (не применять какую-либо функцию к нему, чтобы изменить результат) * вы больше не ссылающейся на этот конкретный столбец, но в настоящее отдельный вычисляемый столбец, который должен быть совмещенным , Однако нет причин не использовать существующее имя столбца. Например, 'LEFT (Location, 7) [Location]' будет работать. – Lankymart
Еще один возможный дубликат [ASP Classic recordset не может видеть столбцы с форматом «table.column_name» после преобразования MySQL] (http://stackoverflow.com/q/33263086/692942) * (игнорируйте часть MySQL, эта же проблема по-прежнему применяется несколько поставщиков, использующих ADODB) *. – Lankymart