Pergunta

Eu tenho um problema que só começou a acontecer depois que eu reinstalado o servidor do meu site.

No passado, eu poderia fazer isso:

Código:

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

Verificar se não é vazio ou qualquer outra coisa

Código:

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

e se for eu poderia fazer qualquer coisa com ele (como mostrar o seu valor)

Código:

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

Agora eu não posso fazer isso, o "se" teste não funciona com o "msgSet (" scroller_name ")" e eu tenho que redifine-lo pela primeira vez em uma outra variável

Código:

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

então e só então posso fazer testes nele ...

Código:

<% if scrollername <> "" then %>

e mostrá-la também.

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

Eu gostaria apenas de voltar a opção de fazer as operações sobre as variáveis ??mysql registros como b4 ....

Alguém se deparar com este problema? o que mudou, é um varsion Falty mysql ou algo assim?

Obrigado rapazes.

Nenhuma solução correta

Outras dicas

Há duas coisas que você deve fazer para garantir que tem um valor em um campo:

  1. Verifique se o conjunto de registros não está vazia.
  2. Verifique se o campo no atual não tem um valor NULL.

Eu não estou longe de quaisquer alterações nos drivers que têm afectado o seu código, mas eu assumo a diferença é que a seqüência realmente retorna uma seqüência vazia (que seria igual a "") e seu conjunto de registros está retornando um valor NULL adequada ( que não é igual "")

Mais detalhes:

minha ODBC é:. Mysql 5,1 motorista

meu mysql versão: servidor MySQL 5.0

minha corda connetion é:

Eu tentei remover o STMT = SET CHARACTER SET hebraico; OPÇÃO = 3; parte - nenhuma mudança ...

o problema é o uso de quaisquer variáveis ??desde o db, poderia ser qualquer tipo de variável (texto, data, int) ...

até

dia (msgSet ( "scroller_date")) não funciona agora ...

e th engraçado isso é ... tudo isso costumava trabalhar muito bem .. b4 a instalação

você ver nada fora do comum? talvez um mysql versão diferente / ODBC?

Ok ...

  1. o novo ODBC é de 5,1: localizado nos servidores mysql.com (link: http://dev.mysql.com/downloads/connector/odbc/5.1.html )

  2. Sim. Eu reinstalei o (windows server 2003) OS novamente no meu servidor Web e instalado servidor MySQL 5.0 nele.

  3. Eu não estou recebendo um erro, ele simplesmente não está retornando quaisquer dados quando eu uso o método que eu estava explicando abourt, e eu tenho que usar as variáveis ??extras, como expliquei.

Você precisa de mais detalhes, por favor?

Poderia ser uma maneira melhor de teste para verificar se o conjunto de registros está vazio de uma forma alternativa.

Eu geralmente uso:

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

Isto pode ajudar de alguma forma para depurá-lo.

Oh, e algo que pode ser importante. Eu não consigo lembrar o que causou isso, mas às vezes eu achei que ao fazer referência a campos MySQL através de um conjunto de registros, foi sempre menor caso, independentemente do que os campos estão na definição de banco de dados ou consulta.

Se isto não faz com que o script falhar, talvez tentar descobrir o que foi devolvido pelo conjunto de registros.

Dim i

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

Boa sorte

Nunca vi esse problema antes, nem estou certo porque (mais informações sobre o erro seria útil) - mas, como uma correção relativamente rápido você pode querer lançar o item quando você usá-lo. Como:

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

http://www.w3schools.com/vbscript/vbscript_ref_functions.asp# conversão para mais informações.

Mais informações sobre o de erro que você está recebendo iria ajudá-lo a obter uma resposta melhor. Não há MyODBC 5.1, de modo que a versão dos controladores MyODBC você está usando? Por "meu ODBC é: mysql 5,1 motorista" você quer dizer o driver para MySQL 5.1 - que deve ser MyODBC versão 3.51

.

Além disso, por "depois que eu reinstalado o servidor do meu site" você quer dizer que você tenha uma instalação limpa do sistema operacional do servidor? ou você simplesmente re-instalar o MySQL? Ou alguma outra coisa? MySQL 5.1 só saiu 08 de dezembro - foi esta parte de um upgrade

?

Por fim, leia alguns dos comentários à sua pergunta e algumas de suas respostas. Todas as coisas são iguais, se houver algum esclarecimento necessário, editar a questão para adicionar os detalhes. Não escreva uma resposta. Este não é um fórum, e você é a resposta vai perder seu contexto o minuto algo está up-votado acima dela. Também é mais fácil de tomar em toda a questão se o seu tudo em um só local, em oposição a rolagem entre a pergunta e os vários adendos posando como respostas.

Estou recebendo o mesmo problema ... Apenas a migração de um site ASP a partir do MySQL 4 & ODBC 3.x (uma versão antiga ...) para MySQL 5.1 e ODBC 5.1. Se eu tentar este código simples:

Definir rs = conn.Execute ( "escolha ....") enquanto não rs.EOF Response.Write "t1:" & rs ( "text") e "
t2:" & rs ( "text") e "
" rs.MoveNext Wend

como saída recebo a seguinte: t1: Olá t2: t1: como você está t2: etc ...

A segunda vez que acessar o campo não tem nenhum valor, a única maneira é usar uma variável temporária para armazenar os dados pela primeira vez ...

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top