문제

나는 문제는 그냥 일어나고 시작한 후에 난 다시 나 웹 사이트의 서버입니다.

과거에 나는 할 수 있다:

코드:

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

체크인지 않으면 비어 있거나 다른 아무것도

코드:

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

면 그것은 나는 아무것도 할 수 있는것으로(같은 보여주는 가치)

코드:

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

이제는 다음과 같이 할 수 없다,"만약"이라는 시험으로 작동하지 않"msgSet("scroller_name")"내가 아버지를 redifine 에서 그것이 첫째로 다른 변수

코드:

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

다음 및 다음을 할 수 있는 테스트는 그것에...

코드:

<% if scrollername <> "" then %>

표시됩니다.

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

나는 것처럼 다시 얻을 수있는 옵션을 수행 할 작업에 mysql 레코드 집합을 변수를 다음과 같 b4....

는 사람이 문제인가?가 변경된 것,그것은 falty mysql varsion 또는 뭔가?

너희들을 주셔서 감사합니다.

올바른 솔루션이 없습니다

다른 팁

두 가지 당신이해야 할 수 있도록 값에서 필드:

  1. 는지 확인 레코드 집합이 비어 있지 않은지 확인합니다.
  2. 지 확인하는 필드에는 현재하지 않는 NULL 값을 가집니다.

나는 멀리에 어떤 변화를 드라이버에 영향을 주는 코드,그러나 나는 가정 차이점은 당신의 문자열이 실제로 빈 문자열을 반환합니다(는 것 같음"")과 당신의 레코드가 반환하는 적절한 경우에는 NULL 값(는 같지 않은"")

자세한 내용은:

내 ODBC는 : MySQL 5.1 드라이버입니다.

MySQL 버전 : MySQL Server 5.0

내 Connetion 문자열은 다음과 같습니다.

stmt = set 문자 세트 히브리어; 옵션 = 3을 제거하려고했습니다. 부품 - 변화 없음 ...

문제는 DB에서 바로 변수를 사용하는 것입니다. 모든 종류의 변수 (텍스트, 날짜, int) 일 수 있습니다 ...

조차

day (msgset ( "scroller_date"))가 지금 작동하지 않습니다 ...

그리고 Th Funny 이건 ... 모든 것이 잘 작동하는 데 익숙합니다 .. B4 설치

당신은 평범하지 않은 것이 있습니까? 어쩌면 다른 mySQL/ODBC 버전일까요?

확인...

  1. 새로운 ODBC는 5.1입니다. mysql.com 서버에 위치합니다 (링크 : http://dev.mysql.com/downloads/connector/odbc/5.1.html)

  2. 예. 웹 서버에서 OS (Windows Server 2003)를 다시 설치하고 MySQL Server 5.0을 설치했습니다.

  3. 오류가 발생하지 않고 ABOURT를 설명하는 방법을 사용할 때 데이터를 반환하지 않으며 설명한 것처럼 추가 변수를 사용해야합니다.

더 이상 세부 사항이 필요합니까?

레코드 세트가 대체 방식으로 비어 있는지 확인하기 위해 테스트하는 것이 더 좋은 방법 일 수 있습니다.

나는 일반적으로 사용한다 :

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이어야합니다.

또한 "내 웹 사이트의 서버를 다시 설치 한 후"라면 서버 OS를 정리 설치 한 것을 의미합니까? 아니면 MySQL을 다시 설치 했습니까? 또는 다른 것? MySQL 5.1이 12 월 8 일에 나왔습니다.이 부분은 업그레이드의 일부입니까?

마지막으로, 귀하의 질문에 대한 의견과 답변 중 일부를 읽으십시오. 설명이 필요한 경우 모든 것이 동일합니다. 세부 사항을 추가하기 위해 질문을 편집하십시오. 응답을 쓰지 마십시오. 이것은 포럼이 아니며, 응답은 그 위에 무언가가 상승한 순간에 맥락을 잃게 될 것입니다. 또한 질문과 답변대로 포즈를 취하는 다양한 부록 사이를 스크롤하는 것과는 달리 한 지점에있는 경우 전체 문제를 수행하는 것이 더 쉽습니다.

같은 문제가 발생합니다 ... MySQL 4 & ODBC 3.X (이전 버전 ...)에서 MySQL 5.1 및 ODBC 5.1로 ASP 사이트를 마이그레이션합니다. 이 간단한 코드를 시도하면 :

RS = Conn.Execute ( "Select ...
T2 : "& rs ("text ") &"
"rs.movenext wend

출력으로 다음을 얻습니다 : T1 : Hello T2 : T1 : 어떻게 T2 : etc ...

필드에 두 번째로 액세스 할 때 가치가 없습니다. 유일한 방법은 임시 변수를 사용하여 데이터를 처음으로 저장하는 것입니다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top