wie kann man 'undefined' abfragen
Schani
- asp.net
Hallo zusammen,
folgendes Problem, bekomme bei rsList("datum") öfters undefined zurück.
Möchte das Abfragen in der Form:
if (rsList("datum") == undefined) Response.Write("blabla")
so gehts aber nicht auch Versuche mit isNothing() waren nicht erfolgreich, da rsList("datum") kein Objekt ist und deshalb die Methode nicht kennt.
Auch =='' oder =="" geht nicht.
Weiss wer wies geht (in JSCRIPT, VBScript hilft mir aber wahrscheinlich auch weiter)
Danke,
Schani
Hallo zusammen,
folgendes Problem, bekomme bei rsList("datum") öfters undefined zurück.
Möchte das Abfragen in der Form:
if (rsList("datum") == undefined) Response.Write("blabla")
so gehts aber nicht auch Versuche mit isNothing() waren nicht erfolgreich, da rsList("datum") kein Objekt ist und deshalb die Methode nicht kennt.
Auch =='' oder =="" geht nicht.
Weiss wer wies geht (in JSCRIPT, VBScript hilft mir aber wahrscheinlich auch weiter)Danke,
Schani
Hi Schani,
versuch mal bitte auch zu sagen, was du machen willst (insgesamt) - so geheim wird es nicht sein, oder? ;-)
auch etwas Quelltext wäre nicht schlecht, den der Teufel steckt meist im Detail.
Response.Write funzt bei dir mit Klammern, wundert mich stark, ich bekomme dann immer kompilier-Fehler..
Okay, warte auf deine Erläuterung.
Frank
Hallo,
ok hier teile meines Quelltextes:
objConnection = Server.CreateObject("ADODB.Connection")
objConnection.open("mediadb")
s=Request.Form("begriff")
stmt2="SELECT [Media Library].* FROM [Media Library] WHERE Titel LIKE '"+ s + "'"
rsList = objConnection.Execute(stmt2)
...
if (rsList("datum")== '') Response.Write(" ")
ich habe eine SQL-Abfrage von einer Tabelle, wo nicht alle Felder gefüllt sind. Bei diesen nicht gefüllten Feldern, will ich ein Leerzeichen ausgeben.
Ich will aber grundsätzlich wissen, wie man undefined Abfragen kann, darum bitte ich euch sich nicht zu sehr auf den Code zu konzentrieren.
Zu den Klammern: ich schreib in JScript, da sind Klammern glaub ich sogar notwendig, in VBScript schauts wahrscheinlich anders aus.
Vielleicht hilft euch das weiter
Schani
Hallo zusammen,
folgendes Problem, bekomme bei rsList("datum") öfters undefined zurück.
Möchte das Abfragen in der Form:
if (rsList("datum") == undefined) Response.Write("blabla")
so gehts aber nicht auch Versuche mit isNothing() waren nicht erfolgreich, da rsList("datum") kein Objekt ist und deshalb die Methode nicht kennt.
Auch =='' oder =="" geht nicht.
Weiss wer wies geht (in JSCRIPT, VBScript hilft mir aber wahrscheinlich auch weiter)Danke,
SchaniHi Schani,
versuch mal bitte auch zu sagen, was du machen willst (insgesamt) - so geheim wird es nicht sein, oder? ;-)
auch etwas Quelltext wäre nicht schlecht, den der Teufel steckt meist im Detail.
Response.Write funzt bei dir mit Klammern, wundert mich stark, ich bekomme dann immer kompilier-Fehler..
Okay, warte auf deine Erläuterung.
Frank
Hallo,
ok hier teile meines Quelltextes:
objConnection = Server.CreateObject("ADODB.Connection")
objConnection.open("mediadb")
s=Request.Form("begriff")
stmt2="SELECT [Media Library].* FROM [Media Library] WHERE Titel LIKE '"+ s + "'"
rsList = objConnection.Execute(stmt2)
...
if (rsList("datum")== '') Response.Write(" ")ich habe eine SQL-Abfrage von einer Tabelle, wo nicht alle Felder gefüllt sind. Bei diesen nicht gefüllten Feldern, will ich ein Leerzeichen ausgeben.
Ich will aber grundsätzlich wissen, wie man undefined Abfragen kann, darum bitte ich euch sich nicht zu sehr auf den Code zu konzentrieren.
=============================================
was issn das für ne DB??? SQL, Access, Oracle?? Der findet vielleicht keine DB und kann daher auch keine "defined" Ergebnisse liefern. deshalb kommt immer undefined raus, würde ich schätzen.
Leg dir doch eine Datei DSN an, definierst du über Systemssteuerung -> ODBC-Datenquellen...
dann hättest du schon auf jeden fall eine "gültige" Verbindung.
"Undefined" fields gibt es nich, entweder isNull oder isNotNull
Und ein Leerzeichen schreibst du am besten mit der Uni-Code übersetzung, weil dann isses fest und kein etwaiges Whitespace:
->Response.Write " "
Ein "SELECT * FROM <Tabelle>" würde auch ausreichen
Muß der Feldeintrag genau übereinstimmen mit der Formulareingabe? Sonst -> Like '%" & s & "%'" dann sucht es im Feld nach der Zeichenkette = miniVolltextsuche.
Andere generelle Frage, kriegst du mit der DB überhaupt schon ein Ergebnis??
Andere Frage, warum JScript? ADO-Objekte sind doch eh VBScript? Hmm??
Gruß, Frank
Hallo,
ok hier teile meines Quelltextes:
objConnection = Server.CreateObject("ADODB.Connection")
objConnection.open("mediadb")
s=Request.Form("begriff")
stmt2="SELECT [Media Library].* FROM [Media Library] WHERE Titel LIKE '"+ s + "'"
rsList = objConnection.Execute(stmt2)
...
if (rsList("datum")== '') Response.Write(" ")ich habe eine SQL-Abfrage von einer Tabelle, wo nicht alle Felder gefüllt sind. Bei diesen nicht gefüllten Feldern, will ich ein Leerzeichen ausgeben.
Ich will aber grundsätzlich wissen, wie man undefined Abfragen kann, darum bitte ich euch sich nicht zu sehr auf den Code zu konzentrieren.=============================================
was issn das für ne DB??? SQL, Access, Oracle?? Der findet vielleicht keine DB und kann daher auch keine "defined" Ergebnisse liefern. deshalb kommt immer undefined raus, würde ich schätzen.
Leg dir doch eine Datei DSN an, definierst du über Systemssteuerung -> ODBC-Datenquellen...
dann hättest du schon auf jeden fall eine "gültige" Verbindung.
"Undefined" fields gibt es nich, entweder isNull oder isNotNull
Und ein Leerzeichen schreibst du am besten mit der Uni-Code übersetzung, weil dann isses fest und kein etwaiges Whitespace:
->Response.Write " "Ein "SELECT * FROM <Tabelle>" würde auch ausreichen
Muß der Feldeintrag genau übereinstimmen mit der Formulareingabe? Sonst -> Like '%" & s & "%'" dann sucht es im Feld nach der Zeichenkette = miniVolltextsuche.Andere generelle Frage, kriegst du mit der DB überhaupt schon ein Ergebnis??
Andere Frage, warum JScript? ADO-Objekte sind doch eh VBScript? Hmm??
Gruß, Frank
Es is Access-DB über ODBC. Es funkt eh alles, nur gewisse Felder sind eben leer (nicht immer manchmal), die Ausgabe ist auch in Ordnung, nur bei Netscape werden leere Felder nicht dargestellt und deshalb will ich das Leerzeichen einfügen. Aber eben nur dann, weil sonst macht es ab und zu einen Zeilenumbruch.
JSript deshalb, weil ich das kann, VBScript nicht, aber verstehen tu ichs meistens schon. Bei Objekten ist es eh egal, in welcher Sprache, nur die Syntax ist eben ein wenig unterschiedlich.
Ciao
Schani
Hallo,
Response.Write funzt bei dir mit Klammern, wundert mich stark, ich bekomme dann immer kompilier-Fehler..
Interessant ;-)
Ohne klammern habe ich es noch gar nie probiert. (Bis jetzt)
Bei mir funktioniert es sowohl als auch. Standard Script Sprache ist VBScript. IIS 4 vom Optionpack 4.
Grüsse an alle
HaPe (derimmernochmitliestaberkaumzeithatumzuantworten)
Hallo auch,
folgendes Problem, bekomme bei rsList("datum") öfters undefined zurück.
Möchte das Abfragen in der Form:
if (rsList("datum") == undefined) Response.Write("blabla")
so gehts aber nicht auch Versuche mit isNothing() waren nicht erfolgreich, da rsList("datum") kein Objekt ist und deshalb die Methode nicht kennt.
Auch =='' oder =="" geht nicht.
Weiss wer wies geht (in JSCRIPT, VBScript hilft mir aber wahrscheinlich auch weiter)
Ich habe gerade in der JScript.chm geschmökert und bin dabei auf den Befehl typeof gestoßen.
<cite>
typeof-Operator
Beschreibung:
Gibt eine Zeichenfolge zurück, die den Datentyp eines Ausdrucks angibt.
Syntax
typeof [ ( ] Ausdruck [ ) ] ;
Das Argument Ausdruck ist ein beliebiger Ausdruck, zu dem Typeninformationen benötigt werden.
Anmerkungen
Der typeof-Operator gibt Typeninformationen als Zeichenfolge zurück. Es gibt sechs mögliche Werte, die typeof zurückgibt: "Number", "String", "Boolean", "Object", "Function" und "undefined".
In der typeof-Syntax sind die Klammern optional.
</cite>
Ob es die Lösung ist weiß ich jetzt auch nicht. Aber vielleicht hilfts. Lass es uns bitte wissen.
Gruß HaPe (derheuteeinenneuentagesrekordaufgestellthatimantworten)
Hallo auch,
folgendes Problem, bekomme bei rsList("datum") öfters undefined zurück.
Möchte das Abfragen in der Form:
if (rsList("datum") == undefined) Response.Write("blabla")
so gehts aber nicht auch Versuche mit isNothing() waren nicht erfolgreich, da rsList("datum") kein Objekt ist und deshalb die Methode nicht kennt.
Auch =='' oder =="" geht nicht.
Weiss wer wies geht (in JSCRIPT, VBScript hilft mir aber wahrscheinlich auch weiter)Ich habe gerade in der JScript.chm geschmökert und bin dabei auf den Befehl typeof gestoßen.
<cite>
typeof-Operator
Beschreibung:
Gibt eine Zeichenfolge zurück, die den Datentyp eines Ausdrucks angibt.
Syntax
typeof [ ( ] Ausdruck [ ) ] ;
Das Argument Ausdruck ist ein beliebiger Ausdruck, zu dem Typeninformationen benötigt werden.Anmerkungen
Der typeof-Operator gibt Typeninformationen als Zeichenfolge zurück. Es gibt sechs mögliche Werte, die typeof zurückgibt: "Number", "String", "Boolean", "Object", "Function" und "undefined".
In der typeof-Syntax sind die Klammern optional.</cite>
Ob es die Lösung ist weiß ich jetzt auch nicht. Aber vielleicht hilfts. Lass es uns bitte wissen.
Gruß HaPe (derheuteeinenneuentagesrekordaufgestellthatimantworten)
Soo,
das ist es, in meinen Fall waren die Variablen überraschenderweise doch tlw. undefined tlw. Objekte mit null. Deshabl hab ich es so gelöst:
<% if (typeof(rsList("DW").value) != "string") Response.Write(" ") %> <% Response.Write(rsList("DW").value) %> </font></td><% } %>
und das funkt !
typeof ist die Funktion, die ich gesucht habe
Danke nochmals
Hallo Schani
if (rsList("datum") == undefined) Response.Write("blabla")
so gehts aber nicht auch Versuche mit isNothing() waren nicht erfolgreich, da rsList("datum") kein Objekt ist und deshalb die Methode nicht kennt.
Auch =='' oder =="" geht nicht.
Weiss wer wies geht (in JSCRIPT, VBScript hilft mir aber wahrscheinlich auch weiter)
Versuch es mal mit:
if (isNull(rsList("datum")) ' für VBScript
oder
if(typeOf(rsList("datum")) == "undefined") // für JScript, wie HaPe und Du schon beschrieben hat.
// Die direkte Abfrage nach "undifined" ist insofern besser, denn falls das Feld eine Zahl enthält, gibt typeOf() den String "number" zurück.
Ansonsten hier noch ein guter Link zu einer vollständigen ASP-, JScript- und VBScript-Dokumentation, inklusive ADO-Objekte etc. :http://www.chilisoft.com/caspdoc/
Grüsse
Tom