Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Kennt sich einer von euch mit UDL aus ?

Empfohlene Antworten

Veröffentlicht

Hallo, miteinander.

Ich habe mich ernsthaft gefragt, wo ich denn diese Frage unterbringen soll - im Bereich, der auch ASP beinhaltet, oder im Bereich Datenbanken.

Ich habe mich dann schweren Herzens für letzteres entschieden.

Also, hier mein Problem:

Kennt sich einer von euch mit UDL aus ?

Ich habe mir folgenden Artikel einmal näher angeschaut: Universal Data Links mit ASP erstellen , weil ich kein DNS verwenden möchte.

Ich weiß "natürlich" nicht, ob es nicht auch einfacher geht, aber DNS ist mir einfach zu "hart kodiert". Ich möchte da nicht unbedingt von festen Treibereinträgen anhängig sein.

Nun habe ich dieses Script aus diesem Artikel angepasst und ausprobiert, und habe den Eindruck, als ob in der Zeile mit dem SQL-String, der mittels Execute ausgeführt werden soll, nur 20 Zeichen funktionieren; Grund: Im Beispiel sind es 18 Zeichen, und mein String ist länger, und wird gnadenlos bei 20 Zeichen abgeschnitten.

Beispielscript:

strSQL = "SELECT * FROM Tudl"

Set objRS= objConn.Execute(strSQL)

Mein Script:

set selectionvar="select * from fanartikel"

set rs=db.Execute(selectionvar)

"objConn" aus dm Beispiel ist identisch mit meinem "db".

Es geht hier um den String "select * from Tudl", der 18 Zeichen lang ist, wohingegen mein String länger ist; und ich bekomme die Fehlermeldung (welche mir allem Anschein nach beweist, daß der String ab Zeichen 20 abgeschnitten wird):

Kompilierungsfehler in Microsoft VBScript- Fehler '800a03ea'

Syntaxfehler

/iisHelp/common/500-100.asp, line 129

elseIf (objASPError.Description > "") Then

^

Laufzeitfehler in Microsoft VBScript- Fehler '800a01a8'

Objekt erforderlich: '[string: "select * from fanart"]'

Frage: Was kann ich da tun ?

Original geschrieben von Alrik Fassbauer

Beispielscript:

strSQL = "SELECT * FROM Tudl"

Set objRS= objConn.Execute(strSQL)

Mein Script:

set selectionvar="select * from fanartikel"

set rs=db.Execute(selectionvar)

lass das SET bei der String-variablen weg.

SET wird in VBScript dazu benutzt, Objekte zu instanzieren bzw Variablen ein Objekt zuzuweisen. Anders als in Java sind in VBScript aber Strings keine Objekte in diesem sinne.

db.Execute() hingegen erzeugt ein Objekt, das SET ist hier richtig angewendet.

Gruss

Matze

  • Autor

Hallo, mal wieder.

Erstmal danke für die Information.

Zum Zweiten: Es kann sein, daß mein Problem gelöst ist.

In der UDL-Datei (die im Prinzip nichts anderes als eine einfache Textdatei ist) war der Pfad zur Datenbank selber falsch eingestellt.

Ich habe mit mehreren Pfaden probiert, und siehe da ! Auf einmal klappt es !

Es kann also sein, daß der Pfad in der UDL-Datei falsch drin war.

  • Autor

Also, nochmal, da mußte noch etwas geändert werden.

Original:

<%

Response.Buffer = True

Response.Expires = 0

Dim objConn

Dim strSQL

Dim objRS

Dim strPath


'Hier noch ihre Pfadangaben ergänzen:

strPath = Server.MapPath("/scripts/UDLFiles/UDL_Acc.udl")


Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "file name=" & strPath

strSQL = "SELECT * FROM Tudl"

Set objRS= objConn.Execute(strSQL)

While Not objRS.EOF

  Response.Write objRS("TudlText").Value & "<br>"

  objRS.MoveNext

Wend

%>
Die "Fälschung":
<%

Response.Buffer = True

Response.Expires = 0

Dim objConn

Dim strSQL

Dim objRS

Dim strPath


'Hier noch ihre Pfadangaben ergänzen:

strPath = Server.MapPath("/scripts/fanartikel.udl")


Set objConn = Server.CreateObject("ADODB.Connection")

objConn.Open "file name=" & strPath

strSQL = "SELECT * FROM Fanartikel"

Set objRS= objConn.Execute(strSQL)

While Not objRS.EOF

  Response.Write objRS("Artikelname").Value & "<br>"

  objRS.MoveNext

Wend

%>
Zweite Version:
<%

dim driverconnection

dim selectionvar

dim Pfad

dim RSPfad

dim rs

dim db


RSPfad=Server.MapPath("/scripts/Fanartikel.UDL")


set db=Server.CreateObject("ADODB.Connection")

db.Open="file name=" & RSPfad


selectionvar="select * from fanartikel"


set rs=db.Execute(selectionvar)

while not rs.EOF Response.Write rs("artikelname").Value & "<br>"

rs.MoveNext

Wend

%>

Original geschrieben von Alrik Fassbauer

Also, nochmal, da mußte noch etwas geändert werden.

Also, ich kann so beim Überfliegen keinen groben Schnitzer erkennen. Wo liegt nun das Problem?

Ein Tip noch dazu: Du solltest die UDL-Dateien nicht mit der Dateiendung "UDL" sondern "ASP" im Web liegen lassen.

Warum? Folgendes Szenario: Eine ASP-Fehlermeldung gibt dem Besucher den Pfad und den Dateinamen preis. Der BEsucher muss nun nur noch Die Datei im Browser aufrufen und kann sich diese downloaden. Danach weiss er ganz genau, wo deine Datenbank liegt und wie das Passwort ist.

Ist die UDL-Datei in Datei.udl.ASP umbenannt, so versucht der IIS, die Datei an die ASP.DLL zu schicken, was einen - harmlosen - Fehler verursacht. Der Besucher bekommt deine Connection-Daten nicht zu Gesicht.

Gruss

Matze

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.