Datenbankverbindung

sunflower84

Erfahrenes Mitglied
Hallo

Ich würde gerne Daten in die Datenbank exportieren. Aber leider funktioniert das nicht im Web. Lokal klappt das alles. Ich bekomme im Web folgende Fehlermeldung wenn ich die Daten exportieren möchte:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

/xxx, line 43


Hier mal das was in den Zeilen steht:

line 42: Set Con = Server.CreateObject( "ADODB.Connection")
line 43: Con.Open "accessDSN"

Wie mach ich das denn im Web lauffähig?

Lg
Sunflower
 
Zuletzt bearbeitet:
Hallo

Ohjee, was fragen.
Ehrlich gesagt weiss ich nicht was ich auf dem Server für Möglichkeiten habe. Aber es wäre wirklich lieb wenn du mir helfen könntest. Muss das bis Mittwoch fertig haben. Bin schon total am verzweifeln.
Wie funktioniert das denn anders?

Hier ist mein Quelltext:
<html>
<head>
<title>Anmeldung</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta http-equiv="expires" content="0">
<link rel=stylesheet type="text/css" href="/lib/style.css">
<style type="text/css">

p{ font-size:90%;
line-height:80%;
font-family:Helvetica,Arial,sans-serif;margin-top:10px; margin-bottom:10px;;
}
</style>
</head>

<%
'Auslesen der Formularfelder
addProduct =TRIM( Request("Anmelden"))

namederfirma=TRIM(Request( "namederfirma"))
vorname=TRIM(Request( "vorname"))
name =TRIM(Request( "name"))
telefonnummer =TRIM(Request( "telefonnummer"))
email =TRIM(Request( "email"))


%>
<div align="left">
<br><br><br><br><br><br><br>
<%
if Request.Form("vorname")= "" THEN
Response.Write("<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sie müssen Ihren Vornamen eingeben.</p>")
END IF
if Request.Form("name")= "" THEN
Response.Write("<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sie müssen Ihren Namen eingeben.</p>")
END IF
if Request.Form("email")= "" THEN
Response.Write("<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sie müssen Ihre Email eingeben.</p>")
else


'Öffnen der Datenbankverbindung
Set Con = Server.CreateObject( "ADODB.Connection")
Con.Open "accessDSN"
%>

<html>
<head><title>Manage Products</title></head>

<%
'Neues Produkt hinzufügen
IF addProduct <> "" THEN

sqlString = "INSERT INTO Anmeldung (name_der_firma,vorname,name,telefonnummer,email) VALUES ('" & namederfirma & "', '" & vorname &"', '" & name &"', '" & telefonnummer &"', '" & email &"')"

Con.Execute sqlString
%>
<center>
<table width="600" cellpadding="4" cellspacing="0">
<tr>
<td>
Anmeldung erfolgreich
</td>
</tr>
</table>
</center>
<p></p>
<%
END IF
END IF
%>

<div align="left">
<!--<a href="addproduct.asp">-->
<a href="xxximg src="back.jpg" width="50" height="40" border="0" alt="Back"></a></
</body>
</html>

Lg
Sunflower
 
Zuletzt bearbeitet:
Hi

bei manchen Providern kann man im Kundenbereich eine systemDSN für die Datenbank anliegen. Eine DSN kann nur im System genutzt werden und muss dort angelegt werden und kann nicht via FTP hochgeladen werden. Du kannst auch den Provider bitten, dies für Dich zu zu, wenn Du es nicht selbst im Kundenbereich machen kannst.

Da ich aber nicht weiss, auf welchen Server Du hostest und ob Du überhaupt Zugriff oder Rechte dort hast, musst Du, wenn Du Deine DSN nutzen willst, den Verantwortlichen bitten, es für Dich anzulegen.

Wenn Du keine DSN anlegen kannst, musst Du mit Pfaden arbeiten. Entweder, Du kennst den absoluten Pfad auf dem Server c:\webseiten\... oder man nutzt den Server.Mappath(). Diese Methode orientiert sich am Stammordner.

Ein Beispiel, wenn z.B. die Datenbank in einem Verzeichnis
_Database liegen würde und die Datei in einem Verzeichnis Seiten.

Die Verzeichnisse liegen in dem Falle im gleichen Verhältnis zum Stammordner

Code:
dim strDatabase
strDatabase = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(".") & ("\..\_Database\db.mdb") & ";"

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open strDatabase
 
Also ich habe gerade mal meinen Provider (schlund+partner) angerufen und der hatte gemeint das er zusätzliche Installationen nicht machen kann. Hatte ihm alles erklärt was ich gemacht habe aber er hat gemeint das ging nicht.

Könntest du mir vielleicht eine kleines Beispiel machen, mit einem Eingabefeld. Denn ich versteh leider nicht alles was du mir geschrieben hast. Sorry.


Lg
Sunflower
 
Hallo
Ich habe das mal per DSN-less gemacht.Lokal bekomme ich keinen Fehler aber er exportiert auch nicht.
Im Web bekomme ich folgende Fehlermeldung:
Microsoft JET Database Engine (0x80004005)
Kein zulässiger Dateiname.
xxx line 49

Ich habe den gleichen Quelltext genommen und nur anstelle von
'Öffnen der Datenbankverbindung
Set Con = Server.CreateObject( "ADODB.Connection")
Con.Open "accessDSN"

dieses genommen:
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "xxx"
%>

Woran könnte das denn liegen? Muss ich die Datei woanders hinlegen?

Lg
Sunflower
 
Zuletzt bearbeitet:
Oh, habe ein Hochkomma vergessen.
Aber jetzt bekomme ich folgende Fehlermeldung:
xxx is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.

xxx.asp, line 49

Line 49 ist der Pfad.
Hoffe du kannst mir helfen.
 
Zuletzt bearbeitet:
Hi

ich glaube nicht, dass dies der absolute Pfad bei Schlund und Partner ist.
Die Verbindung ist auch falsch.

Schreib doch einfach mal Deine Verzeichnisstruktur hier auf und dann mache ich Dir ein kleines Beispiel.
 
Guten Morgen

Also ich habe meine Verbindung jetzt mal so gemacht:

<%
dim strDatabase
strDatabase = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(".") & ("xxx.mdb") & ";"

62)Set conn = Server.CreateObject("ADODB.Connection")
63)conn.Open strDatabase
%>

Jetzt habe ich folgende seltsame Fehlermeldung:

Microsoft JET Database Engine error '80004005'

Could not find file xxx.

/ec/managerproducts.asp, line 63

Was ist das denn für ein Pfad?


Also auf meinem FTP habe ich mir einen Ordner angelegt der ec heisst. Und dort is alles drin.
Wenn du auf http://www.edl.de/ec gehst siehst du einen Button namens Anmeldung dort kannst du alle Felder ausfüllen und dann erhälst du auch die Fehlermeldung.

Das meintest du doch mit Verzeichnis, oder?

Lg
Sunflower
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück