MarkX: Laufzeitfehler, Typen unverträglich?

Hallo Ihr!

Ich bin kurz vorm durchdrehen! Naja, so schlimm ist auch wieder nicht, aber ich stehe vor einem Rätsel. Ich habe meinen Provider wechseln müssen und jetzt hab ich die merkwürdigsten Probleme mit meinen ASP-Scripten. Folgendes:

Eine Datenbankabfrage soll ausgegeben werden, was auch funktioniert:
Response.Write dat("Artikelbezeichnung")

Dagegen bringt folgender Befehl:
Response.Write dat("Artikelbezeichnung") & "Blabla"
die Fehlermeldung:

Laufzeitfehler in Microsoft VBScript- Fehler '800a000d'

Typen unverträglich

Mach ich es so:
Response.Write dat("Artikelbezeichnung")
Response.Write "Blabla"

funktioniert es wiederum.

Außerdem bringt er mir die gleiche Fehlermeldung bei einer if-Abfrage. Folgende Zeile akzeptiert er nicht:
If angebot("Artikelbeschreibung_Zeile6") = "" Then

Das gleiche hat bei dem anderen Provider alles funktioniert! Wer kann mir weiterhelfen? Aber bitte nicht sagen: "Wechsel doch zu dem alten Provider zurück!" Diese Option habe ich nicht.

MfG
MarkX.

  1. Hi Markus,

    kenne mich zwar in ASP nicht aus, aber dieses verhalten deutet doch auf einen Versionswechsel hin, oder (scheinbar zu einer älteren version, die das Verknüpfen von Strings oder so ähnlich noch nicht unterstützt.
    Vrsuche also herauszufinden um welche Version es sich handelt und dann bemühe google, warum das was warum wie nicht klappt!

    wünsch DIr alles Gute

    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist
    1. Hi romy!

      Danke! Google konnte mir absolut nicht weiterhelfen, aber das mit der anderen Version ist mir auch grad durch den Kopf gegangen. Dann muß ich eben auf das Verknüpfen von Strings verzichten. Aber auf die if-Abfrage kann ich nicht verzichten. Naja, ich werd´s schon schaffen!

      Meld Dich mal! :-)

      Bis denne und Liebe Grüße!

      MarkX.

  2. Hallo MarkX

    Response.Write dat("Artikelbezeichnung")

    was für einen Typ gibt die Funktion dat denn zurück?

    Dagegen bringt folgender Befehl:
    Response.Write dat("Artikelbezeichnung") & "Blabla"
    die Fehlermeldung:

    Laufzeitfehler in Microsoft VBScript- Fehler '800a000d'

    Typen unverträglich

    Funktioniert <%=dat("Artikelbezeichnung") & "Blabla"%> und
    <%Response.Write(dat("Artikelbezeichnung") & "Blabla")%> ?

    Außerdem bringt er mir die gleiche Fehlermeldung bei einer if-Abfrage. Folgende Zeile akzeptiert er nicht:
    If angebot("Artikelbeschreibung_Zeile6") = "" Then

    Was für einen Typ gibt die Funktion angebot denn zurück? Vielleicht musst du einfach nur die Funktionen so ändern, dass sie einen String zurückliefern.

    Das gleiche hat bei dem anderen Provider alles funktioniert! Wer kann mir weiterhelfen? Aber bitte nicht sagen: "Wechsel doch zu dem alten Provider zurück!" Diese Option habe ich nicht.

    Warum es bei dem einen funktiert und dem anderen nicht, kann ich dir nicht sagen. Evtl. liegts an unterschiedlichen IIS Versionen. Aber da kenn ich mich zu wenig aus.

    Gruß, Stefan

  3. Hallo Du!

    Dagegen bringt folgender Befehl:
    Response.Write dat("Artikelbezeichnung") & "Blabla"
    die Fehlermeldung:

    Laufzeitfehler in Microsoft VBScript- Fehler '800a000d'

    Typen unverträglich

    dat("Artikelbezeichnung") wird wohl keine String liefern, sondern einen Integer oder anderes. In dem Fall kannst du nicht mit dem String-Verkettungsoperator arbeiten.

    Kann es seine dass die Spalte in deiner Datenbank jetzt anders konfiguriert ist?

    Im Prinzip kannst du CStr( dat( "Artikelbezeichnung" ) ) verwenden, aber Artikelbezeichnung hört sich so an, als ob in der Spalte Strings gespeichert werden sollen. Und dann knallt's halt woanders. Also lieber nach der Ursache des Problems suchen, eben in der Datenbank.

    Gruß,
    Martin

    1. dat("Artikelbezeichnung") wird wohl keine String liefern, sondern einen Integer oder anderes. In dem Fall kannst du nicht mit dem String-Verkettungsoperator arbeiten.

      Das ist ja das Merkwürdige: es liefert ganz sicher einen String!

      Kann es seine dass die Spalte in deiner Datenbank jetzt anders konfiguriert ist?

      Nein, an der Datenbank hat sich nichts verändert.

      Im Prinzip kannst du CStr( dat( "Artikelbezeichnung" ) ) verwenden

      Selbst dann kommt immer noch der gleiche Fehler.

      Bin ratlos. Trotzdem Danke für die Hilfe!

      MfG
      MarkX.

  4. Hallo,

    Ich bin kurz vorm durchdrehen! Naja, so schlimm ist auch wieder nicht, aber ich stehe vor einem Rätsel. Ich habe meinen Provider wechseln müssen und jetzt hab ich die merkwürdigsten Probleme mit meinen ASP-Scripten. Folgendes:
    Mach ich es so:
    Response.Write dat("Artikelbezeichnung")
    Response.Write "Blabla"

    funktioniert es wiederum.

    das hatte ich auch mal, aber bei einer anderen sache, bei mir lag es daran, das ein teil der anweisung daneben ging und damit der rest auch nicht ausgeführt wurde...
    probier mal testweise ein
    on error resume next
    einzubauen (am anfang), dann geht die sache erstmal weiter
    an den kritischen stellen kannst du mal ein response.write err.description ausgeben lassen
    die verkettung von einem string und einem integer dürfte nicht das problem sein, das wird duch das vb meistens angepasst, aber auch hier könnte es bei gewissen schärferen einstellungen am vb-parser zu errors kommen, wenn die typen nicht übereinstimmen...

    Außerdem bringt er mir die gleiche Fehlermeldung bei einer if-Abfrage. Folgende Zeile akzeptiert er nicht:
    If angebot("Artikelbeschreibung_Zeile6") = "" Then

    dieser fehler dürfte kommen, wenn angebot("Artikelbeschreibung_Zeile6") nicht nur leer ist, sondern auch nie gefüllt wurde also isNull zutrifft...
    kann es sein, das du Null in deinem tabellenfeld zuläßt und da auch nie was reinkommt (bspw. duch fehlende usereingaben)?

    Das gleiche hat bei dem anderen Provider alles funktioniert! Wer kann mir weiterhelfen? Aber bitte nicht sagen: "Wechsel doch zu dem alten Provider zurück!" Diese Option habe ich nicht.

    MfG
    MarkX.

    Odium