Probleme mit Datenbankzugriff und INSERT INTO


Luk

Grünschnabel
Guten Abend
Ich befasse mich erst kurz mit ASP, möchte jedoch nun eine Seite erstellen, wo einige Datensätze aus Input-Feldern gelesen werden und anschliessend in eine Access DB geschrieben werden.

Klingt ganz einfach, ich hab auch schon was programmiert, doch leider bekomme ich bei der Auslösung zum speichern immer einen 500 Server Fehler..... :(

Ich brauche Win2003 Server EE mit IIS 6.0
Habe auch die ODBC-Datenquelle angelegt etc.

Im IIS Log steht folgendes:
Code:
2005-04-12 20:37:14 127.0.0.1 POST /ASP/index.asp action=save|37|800a0401|Expected_end_of_statement 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+.NET+CLR+1.1.4322) 500 0 0



Der Code sieht so aus:
Code:
<%

if Request.QueryString("action") = "save" then

Dim objConn, objRS, strSQL, ILO, Ip, Projekt, Netz, Ansprech, Status

ILO = request.form("txtILO")
Ip = request.form("txtIp")
Projekt = request.form("txtProinf")
Netz = request.form("txtnetz")
Ansprech = request.form("txtPers")
Status = request.form("txtStatus")


set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\ASP\Db\db.mdb"))


strSQL="INSERT INTO tbl_Infos(ILONode, IpAdresse, Projektinformation, Netzwerkzone, Ansprechperson, Status) VALUES ('"&ILO&"', '"&Ip&"', '"&Projekt&"', '"&Netz&"', '"&Ansprech&"', '"&Status&"')"
Set objRS = objConn.Execute(strSQL)

end if

%>
<html>

<head>
</head>

<title></title>
<body bgcolor="#ADC3F7">
<form name='formular' action='index.asp?action=save' method='post'>

<table width="1000" border="0" cellspacing="0" cellpadding="5" bgcolor="#ADC3F7">
      <tr>
        <td align="Right">ILO-Node</td>
        <td> <input type="text" name="txtILO" value="">
        </td>
        <td align="Right"> Ip-Adresse  </td>
        <td> <input type="text" name="txtIp" value="">
        </td>
      </tr>

      <tr>
        <td align="Right"> Projektinformation  </td>
        <td> <input type="text" name="txtProinf" value="">
        </td>
        <td align="Right"> Netzwerkzone</td>
        <td> <input type="text" name="txtNetz" value="">
        </td>
      </tr>
      <tr>
        <td align="Right"> Ansprechperson</td>
        <td> <input type="text" name="txtPers" value="">
        </td>
        <td align="Right"> Status </td>
        <td> <input type="text" name="txtStatus" value="">

        </td>
      </tr>

   

<tr>
	<td><input type="button" name="button" value="OK" onclick="JavaScript:fncFieldchecker()">
  	<input type="reset" name="Submit2" value="Cancel">
  	<input type="button" name="Submit3" value="Back" onclick="history.back()">
   </td>
   </tr>
   


</table>
</form>
</body>
</html>



<script language="JavaScript" type="text/JavaScript">
<!--


function fncFieldchecker() {


var Meldung;
var ii;

Meldung = 'Folgende Felder müssen ausgefüllt werden' + "\n"
ILONode  = 'ILO-Node' + "\n"
IpAdresse   = 'Ip-Adresse ' + "\n"
Projektinformation = 'Projektinformation' + "\n"
Netzwerkzone = 'Netzwerkzone' + "\n"
Ansprechperson = 'Ansprechperson' + "\n"
Status = 'Status' + "\n"
ii = 0;



 if (document.all.formular.txtILO.value == ""){
 	ii = ii + 1;
	Meldung = Meldung + "-" + ILONode;
 }

 if (document.all.formular.txtIp.value == ""){
 	ii = ii + 1;
	Meldung = Meldung + "-" + IpAdresse ;
 }
 if (document.all.formular.txtProinf.value == ""){
 	ii = ii + 1;
	Meldung = Meldung + "-" + Projektinformation;
 }
 if (document.all.formular.txtNetz.value == ""){
  	ii = ii + 1;
 	Meldung = Meldung + "-" + Netzwerkzone ;
 }
 if (document.all.formular.txtPers.value == ""){
 	ii = ii + 1;
	Meldung = Meldung + "-" + Ansprechperson;
 }
  if (document.all.formular.txtStatus.value == ""){
  	ii = ii + 1;
 	Meldung = Meldung + "-" + Status;
 }
 


 if (ii > 0){
 	alert(Meldung);
 	return false;
 }
 document.formular.submit();
 }

 //-->
</script>


Diese ASP-Seite entspriche dem speicher von Datensätze, später möchte ich dieses kleine Tool noch mit einer einfachen suche erweitern.....

Doch ich wäre schon sehr dankbar, wenn jemand diesen Fehler hier beheben resp. nachvollziehen kann.

Danke
 
L

Lord-Lance

Also das einzige was ich grad so nach kurtem anschauen sehe ist das deine Tabellenfelder alle als "Text" oder Memo abgelet werde?

Überprüfe in der Datenbank ob eines der Felder eine Zahl ist oder nicht. Falls beispielsweise das Feld "Status" nur eine Zahl annehmen kann, dann dürften die Werte die eingefügt werden nicht in Hochkommas stehen ... also so

Code:
strSQL="INSERT INTO tbl_Infos(ILONode, IpAdresse, Projektinformation, Netzwerkzone, Ansprechperson, Status) VALUES ('"&ILO&"', '"&Ip&"', '"&Projekt&"', '"&Netz&"', '"&Ansprech&"', "&Status&")"

evtl. Hilfts ...
 

Luk

Grünschnabel
Die Felder in der Datenbank haben alle den Wert Text.....habe ich nun kontrolliert.
Daran sollte es demnach nicht liegen.....liegt es ev. daran, dass ich die Übergabe mit Request.QueryString mache
 
L

Lord-Lance

mach mal nach dem SQL Statement die folgenden Zeilen rein

response.write strSQL
response.end

und las dein Script laufen. Dies zeigt dir den SQL String so wie er verarbeitet wird. Evtl. ist da was zu erkennen. Am Querystring sollte es nicht liegen.
 
L

Lord-Lance

Ohne die If Abfrage funktioniert das Script.

Ich würde das eher mit
If request.form("button") = "OK" then

machen.

Probiers mal aus ...
 
L

Lord-Lance

hi hi, vor lauter Fehlersuche im ASP teil habe ich den Fehler im HTML gar nicht gesehen :)
Dein Button hat den Type=button. Damit funktionierts natürlich nicht. Der Button muss den Type="submit" ... dann gehts.
 

Luk

Grünschnabel
hab das ganze jetze etwas umgebaut und funktioniert nun auch.....jetzt will ich es von access nur noch auf sql-server portieren....hoffe das schaffe ich alleine ;)

Danke Lord ;-)
 

Neue Beiträge