2011-03-16 2 views
0
Set rslistings = my_conn.Execute(strSQL) 

Do while NOT rslistings.Eof 
    description = strip(rslistings("description")) 
rslistings.MoveNext 
loop 

스트립 - NULL이 전달됩니다. 그러나 내가 디버거를 연결하고 rslistings의 내용 ("설명")를 검사하는 경우, 다음, 실제 필드 개체는데이터베이스 결과가 읽히지 않는 한 null로 전달됩니다.

그것은 아주 오래된 ASP 코드의를 통과,하지만 단지 IIS7하지, IIS6에서 작동

If NOT IsNull(passedinvalue) Then 
    // do something 
Else 
    // do something else 

내가 스트립 같은 스트립 (RS 호출하는 경우 ("이 단지와 함께"설명 "필드에서 발생 편집

스트립 많이하지 않는 텍스트 유형 (MySQL 데이터베이스)입니다 설명 ")), 그것은 내가 Field 객체가 전달 될 때 null이 아닙니다. strip (mynewvar)와 같이 다른 값으로 전달하면 올바른 값이 전달됩니다.

아래에서 요청한 데이터베이스 비트 편집

Set my_conn = Server.CreateObject("ADODB.Connection") 
Set rs = Server.CreateObject("ADODB.Recordset") 
my_conn.Open "DSN=mydb" 

SQL

Set rs = my_conn.Execute("SELECT description FROM table") 
+0

"설명"필드에만 텍스트 유형 (MySQL 데이터베이스)이있는 경우에만 발생합니다. – Paul

+0

'strip''Sub' /'Function' 코드도 게시 할 수 있습니까? – stealthyninja

+0

스트립 기능을 추가했습니다. 많은 일이 없습니다. – Paul

답변

0

@ 폴 : description이 작업을 시작하기 전에 NULL 인 경우 strip 경우 확인하지 않습니다, 당신이 할 수 -

Do while NOT rslistings.Eof 
    description = rslistings("description") 

    If NOT IsNull(description) Then 
     description = strip(description) 
    Else 
     description = "" ' or you could have description = " " 
         ' if you output to screen later on 
    End If 
rslistings.MoveNext 
loop 
+0

아, 실제로 내 문제를 발견했습니다. 첫 번째 스트립은 널 (ISNULL (passedinvalue)이 아님)인지 확인합니다. 그러나 rslistings ("description")을 전달하면 passedinvalue가 null이 아니며 값이 아닌 Field 객체를 전달하는 것으로 간주됩니다. rslistings ("description")을 전달합니다. 올바른 값이 전달되었지만 변경할 수없는 코드가 많습니다. – Paul

+0

@Paul : 정말 이상합니다. 어떻게 작성하고 설정했는지 게시 할 수 있습니까? 'my_conn', 사용하는 연결 문자열과 실행중인 SQL 쿼리? – stealthyninja

+0

원래 질문에 해당 코드를 추가했습니다. – Paul

1

필드 컬렉션은 Recordset 개체의 기본 멤버입니다.

Field 개체의 value 속성도 마찬가지입니다.

다음 두 코드 문은 동일합니다.

Debug.Print objRs.Fields.Item(0) ' Both statements print 
Debug.Print objRs(0)    ' the Value of Item(0). 

변수에 값을 할당하거나 함수의 매개 변수로 사용하면 차이가 있습니다.

관련 문제