Вопрос

У меня проблема, которая началась только после того, как я переустановил сервер своего веб-сайта.

Раньше я мог сделать это:

Код:

<% 
set msgSet = conn.execute("select * from base_scroller where scroller_num = 1" 
%>

проверьте, не пусто ли оно или что-то еще

Код:

<% if msgSet("scroller_name") <> "" then %>

и если это так, я мог бы сделать с ним что угодно (например, показать его ценность)

Код:

<%= msgSet("scroller_name") %>
<% end if %>

Теперь я не могу этого сделать, тест «if» не работает с «msgSet(»scroller_name»)», и мне нужно сначала переопределить его в другой переменной.

Код:

<% scrollername = msgSet("scroller_name") %>

тогда и только тогда я смогу провести тесты на нем...

Код:

<% if scrollername <> "" then %>

и покажи это тоже.

<%= scrollername %>
<% end if %>

Я просто хотел бы вернуть возможность выполнять операции с переменными набора записей MySQL, такими как b4....

Кто-нибудь сталкивался с этой проблемой?что изменилось, это ошибочная версия MySQL или что-то в этом роде?

Спасибо вам, ребята.

Нет правильного решения

Другие советы

Чтобы убедиться, что в поле есть значение, вам следует сделать две вещи:

  1. Убедитесь, что набор записей не пуст.
  2. Убедитесь, что поле в текущем не имеет значения NULL.

Я не исключаю каких-либо изменений в драйверах, которые повлияли на ваш код, но я предполагаю, что разница в том, что ваша строка фактически возвращает пустую строку (которая будет равна ""), а ваш набор записей возвращает правильное значение NULL (что не является равный "")

Более подробная информация:

мой odbc:драйвер mysql 5.1.

моя версия MySQL:MySQL-сервер 5.0

моя строка подключения:

Я пытался удалить STMT=SET CHARACTER SET hebrew;OPTION=3;часть - без изменений...

проблема в использовании любых переменных прямо из базы данных, это может быть любая переменная (текст, дата, целое число)...

даже

day(msgSet("scroller_date")) сейчас не работает...

и это смешно...раньше все работало нормально..б4 установка

ты видишь что-нибудь необычное?может быть, другая версия mysql/ODBC?

Хорошо...

  1. новый odbc — 5.1:расположен на серверах mysql.com (ссылка: http://dev.mysql.com/downloads/connector/odbc/5.1.html)

  2. Да.Я снова переустановил ОС (сервер Windows 2003) на своем веб-сервере и установил на него сервер MySQL 5.0.

  3. Я не получаю сообщение об ошибке, он просто не возвращает никаких данных, когда я использую метод, который я объяснял, и мне приходится использовать дополнительные переменные, как я объяснил.

Вам нужна дополнительная информация, пожалуйста?

Это мог бы быть лучший способ проверить, пуст ли набор записей альтернативным способом.

Обычно я использую:

On Error Goto 0

set msgSet = conn.execute("select * from base_scroller where scroller_num = 1" 

If msgSet.EOF = True And msgSet.BOF = True Then
  Response.Write "Recordset cursor was at the beginning and end of file - empty set."
  Response.End
End If

Это может помочь в его отладке.

Да, и еще кое-что, что может быть важно.Я не могу вспомнить, что вызвало это, но иногда я обнаруживал, что при ссылке на поля MySQL через набор записей они всегда были в нижнем регистре, независимо от того, какие поля находятся в определении базы данных или запросе.

Если это не приводит к сбою вашего сценария, возможно, попробуйте выяснить, что было возвращено набором записей.

Dim i

For Each i In msgSet.Fields
  Response.Write i & "=[" & msgSet.Fields(i) & "]<br />"
Next

Удачи

Никогда раньше не сталкивался с этой проблемой, и я не уверен, почему (более подробная информация об ошибке была бы полезна), но в качестве относительно быстрого решения вы можете захотеть использовать предмет при его использовании.Нравиться:

   <%= cStr(msgSet("scroller_name")) %>

Видеть http://www.w3schools.com/vbscript/vbscript_ref_functions.asp#conversion Чтобы получить больше информации.

Более подробная информация о ошибка, которую вы получаете поможет вам получить лучший ответ.MyODBC 5.1 не существует, какую версию драйверов MyODBC вы используете?По "мой odbc:mysql 5.1", вы имеете в виду драйвер для MySQL 5.1 - это должна быть версия MyODBC 3.51.

Кроме того, под «после того, как я переустановил сервер своего веб-сайта», вы имеете в виду, что выполнили чистую установку ОС сервера?или вы просто переустановили MySQL?Или что-то другое?MySQL 5.1 вышел только 8 декабря.- это было частью модернизации?

Наконец, пожалуйста, прочитайте некоторые комментарии к вашему вопросу и некоторые ваши ответы.При прочих равных условиях, если необходимы какие-то разъяснения, отредактируйте вопрос, добавив подробности.Не пишите ответ.Это не форум, и ваш ответ потеряет контекст, как только над ним проголосуют за что-то.Кроме того, легче охватить всю проблему, если она собрана в одном месте, а не прокручиваться между вопросом и различными дополнениями, выдающими себя за ответы.

У меня та же проблема...Просто перенос сайта asp с mysql 4 и odbc 3.x (старая версия...) на mysql 5.1 и odbc 5.1.Если я попробую этот простой код:

Установите rs = conn.execute ("select ...."), а не rs. e response.write "t1:" & rs("текст") & "
т2:" & rs("текст") & "
"Rs.movenext Wend

в качестве вывода я получаю следующее:т1:Привет T2:т1:Как дела T2:и т. д...

Во второй раз, когда я обращаюсь к полю, оно не имеет значения, единственный способ - использовать временную переменную для хранения данных в первый раз...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top