Zum Inhalt springen

Kennt sich einer von euch mit UDL aus ?


Alrik Fassbauer

Empfohlene Beiträge

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 ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

%>

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...