16. januar 2003 - 20:33Der er
2 kommentarer og 1 løsning
problemer med strings uden indhold...
Jeg har et, synes jeg, meget maerkeligt faenomen her...
Jeg har foelgende:
sql = "SELECT * FROM t_members WHERE m_id = " & request.querystring set rs = server.createobject("adodb.recordset") rs.open sql, con strHomephone = rs("m_homephone") rs.close set rs = nothing
og efterfoelgende denne if-saetning: if strHomephone = "" then strHomephone = "# none #" end if
MEN naar jeg udskriver indholdet af strHomephone, saa er den tom...!!!!
Feltet i min database er et tekstfelt...
Der er ikke noget indhold i feltet i databasen. Jeg har proevet at inkludere et 'else' i min if-saetning, og det viser sig, den betragter strHomephone som om den har et indhold...
HJAELP!!!!
Jeg har 3 felter paa denne maade, og de opfoerer sig alle sammen ens - som om de har indhold uden at have det.
Er der en anden maade at koere min if-saetning paa... eller er der bare nogen, der har et svar paa, hvad der sker / ikke sker ????
Denne variable er svær at arbejde videre med fordi den er af typen VARIANT, hvilket betyder at den kan indeholde alle typer.
Når den så er blank/null og du skriver følgende: if strHomephone = "" then er det det samme som: Du spørger ASP om strHomePhone er en tom tekst og ASP svare nej det er den ikke og det er jo korrekt.
Du skal bahandle variablen strHomephone som en VARIANT eller et felt (som den jo blev sat lig med) og det kan ikke altid konverteres til en tekst.
Du skal gøre således:
if IsNull(rs("m_homephone")) then strHomephone = "" else strHomephone = CStr(rs("m_homephone")) end if
Så virker din if-sætning igen for nu er strHomephone typedefineret til TEKST.
Det er selvfølgelig ikke de eneste problemer man kan få med ASP - behandling af typer i ASP er jo nærmest en videnskab for sig selv.
Prøv eksempelvis den her:
Session.LCID=1030 s = Date if ("18/05/2002" > Date) then response.Write "18/05/2002 er større " & Date & "<br>" else response.Write "18/05/2002 er mindre " & Date & "<br>" end if
Den skriver 18/05/2002 er større 16-01-2003 fordi typedefinitionen først defineres i "if-sætningen" til typen TEKST. ASP vælger typen TEKST fordi det er den eneste der er kendt (s er jo af typen VARIANT)
Sådan kan man blive ved.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.