Nedanstående "On Error Resume Next" funkar på en WXp-maskin med IIS men inte på w98 och PWS samt på den sever där jag har scriptet. ¨Någon som veet vad det beror på?
On Error Resume Next
Set Connect = Server.CreateObject("ADODB.Connection")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Connect.Open "DSN=databasen;UID=;PWD="
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM adressbok"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.AddNew
RecSet("Kundnummer") = Request.Form("kundnummer")
RecSet("Kundfornamn") = Request.Form("kundfornamn")
RecSet.Update
RecSet.Close
Connect.Close
If Err.Number<>0 then
Response.redirect ("fel.asp")
end if
Om man fyller i ett kundnummer som redan finns skall man i stället för att komma till den "fula sidan" att dubletter inte tillåts komma till sidan "fel.asp"
Detta funkar på xb-maskinen men inte på servern eller på en w98-maskin. På dessa maskiner kommer det bara att registreringen har lyckats.
Ok, då tar vi och gör det på rätt sätt då, genom att först kontrollera att kundnumret är ledigt.
Jag har antagit att kundnummer är ett talfält i din tabell.
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "DSN=databasen;UID=;PWD="
strSQL = "SELECT 1 FROM adressbok WHERE kundnummer = " & Trim(Request.Form("kundnummer"))
set RecSet = Connect.Execute (strSQL)
if RecSet.eof then
' kundnumret ledigt!
strSQL = "INSERT INTO adressbok(Kundnummer, Kundfornamn) VALUES (" & Trim(Request.Form("kundnummer")) & ", '" & Request.form("kundfornamn") & "')"
Connect.execute strSQL,,128
else
' kundnumret är upptaget!
fel = 1
end if
RecSet.close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
If fel<>"" then Response.redirect "fel.asp"
Tack @nders. Jag fick tyvärr ngt mismatch men det skall jag kolla igenom vad det beror på.
Jag använder en liten annan metod när jag lägger in i databasen. Skickar med koden nedan.. Går det att göra på det sätt du visade Anders i mitt exempel nedan.
<!-- #include file="../adovbs.inc" -->
<%
On Error Resume Next
Set Connect = Server.CreateObject("ADODB.Connection")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Connect.Open "DSN=databasen;UID=;PWD="
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM adressbok"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.AddNew
RecSet("Kundnummer") = Request.Form("kundnummer")
RecSet("Kundfornamn") = Request.Form("kundfornamn")
RecSet("Kundefternamn") = Request.Form("kundefternamn")
RecSet("Kundadress") = Request.Form("kundadress")
RecSet("Kundpnr") = Request.Form("kundpnr")
RecSet("Kundort") = Request.Form("kundort")
RecSet.Update
RecSet.Close
Connect.Close
If Err.Number<>0 then
Response.redirect ("fel.asp")
end if
%>
<b>Följande uppgifter har nu lagts till i kundregistret:</b><p>
<table border="0" width="50%" cellspacing="1">
<tr>
<td width="19%"><font size="2">Kundnr:</font></td>
<td width="81%"><font size="2"><b><% =Request.Form("kundnummer") %></b></font></td>
</tr>
<tr>
<td width="19%"><font size="2">Förnamn:</font></td>
<td width="81%"><font size="2"><b><% =Request.Form("kundfornamn") %></b></font></td>
</tr>
<tr>
<td width="19%"><font size="2">Efternamn:</font></td>
<td width="81%"><font size="2"><b><% =Request.Form("kundefternamn") %></b></font></td>
</tr>
<tr>
<td width="19%"><font size="2">Adress:</font></td>
<td width="81%"><font size="2"><b><% =Request.Form("kundadress") %></b></font></td>
</tr>
<tr>
<td width="19%"><font size="2">Pnr:</font></td>
<td width="81%"><font size="2"><b><% =Request.Form("kundpnr") %></b></font></td>
</tr>
<tr>
<td width="19%"><font size="2">Ort:</font></td>
<td width="81%"><font size="2"><b><% =Request.Form("kundort") %></b></font></td>
</tr>
</table>
Det funkar fint när jag har "Tal" satt på Kundnummer.
Problemet är nu att sedan jag ändrade Kundnummer i databasen till "Tal" i stället för "Text" så funkar inte allt det andra som jag är klar med. Då blir det mismatch där i stället....hmm