Rolf B: ASP - VBSCRIPT - CreateFolder in Loop aus Datenbankeinträgen

Beitrag lesen

Hallo kettenschutz,

hast Du meinen Beitrag unten ("Nochmal von vorn") gelesen? Da sind noch ein paar Überlegungen drin bezüglich dessen, was Du eigentlich tun willst. Ggf. ist da ein Problem.

Und dann habe ich mir noch mal meine ASP-Interpreterbrille aufgesetzt und mir das hier angeschaut:

Dim strFolder = "C:\TEST\<%=(Recordset1.Fields.Item("Kurzbezeichnung").Value)%>.<%=(Recordset1.Fields.Item("Ort").Value)%>"

Nach genauerer Betrachtung und einem traulichen Schwätzchen mit Onkel Bing Googlesby enthält dieser Code zwei Killer, und es gibt auch noch was für Dich zum Lesen:

  • Ein Anführungszeichen in einem String: Die muss man verdoppeln! Der Code-Highlighter des Forums macht hier nicht ohne Grund "Farbfehler".
  • Ein ASP End-Tag in einem String. Der Server führt zunächst den ASP-Interpreter aus, der HTML von Script trennt. Der ASP-Interpreter weiß aber nichts von VBScript-Strings und separiert stur nach <% und %>. Hier hat jemand das gleiche Problem. Nach %> ist Schluss, und du bekommst den Fehler "Unterminated String". Also gut, DU bekommst ihn nicht, weil dein Produktionsserver die Antwort vermutlich unterdrückt. Hier ist eine Anleitung, wie du das auf dem TEST-Server ändern kannst.
  • Wenn Du unbedingt ASP-Tags in einen String einbauen willst, musst Du sie vor ASP verstecken. Zum Beispiel so: DIM dings = "<" + "%= MyVar %" + ">". Oder, wenn Du sie einfach im Browser darstellen willst, so: DIM dings = "&lt;%= MyVar %&gt;" (weil Du die spitzen Klammern vor dem Browser verstecken musst). Für ASP ist nur wichtig, dass es nicht an falscher Stelle ein <% oder %> antrifft.

Soweit die schlechten Nachrichten. Jetzt die gute: Es ist Unsinn, ASP <%= %> Tagging innerhalb einer VBScript-Verarbeitung einzusetzen um Werte zu erhalten. Du bist ja schon auf VBScript-Ebene. Und es würde auch keinen Sinn machen, ASP-Tags zum Browser zu schicken, der fängt damit nichts an. Du musst einfach nur Strings verketten, und die bisher beschriebenen Probleme stellen sich nicht mehr.

Probiere es doch mal so:

Dim strFolder = "C:\TEST\" + Recordset1.Fields.Item("Kurzbezeichnung").Value + "." + Recordset1.Fields.Item("Ort").Value
...

Das sollte den Syntaxfehler hoffentlich beheben. Die Frage bleibt aber nach der korrekten Lokalisierung dieses Ordners - dazu mehr in dem anderen Beitrag unter "Nochmal von vorn".

Rolf

--
sumpsi - posui - clusi