18. oktober 2002 - 20:31Der er
10 kommentarer og 1 løsning
oprette ny bruger i database, men kun hvis han ikke eksistere
Troede at jeg kunne bruge "on error resume next" men det virker ikke.
Jeg har en database hvor en bruger selv skal kunne oprette sig, det virker udemærket, men hvis brugeren er i databasen i forvejen går det galt, jeg får følgende fejl.
Microsoft OLE DB Provider for ODBC Drivers error '80040e2f'
[Microsoft][ODBC Microsoft Access Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate data, remove the index, or redefine the index to permit duplicate entries and try again.
jeg har sat "tlf" til primær nøgle i databasen, men hvis jeg bruger "on error resume next" går den bare videre som om der ikke er nogle fejl.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Her kommer lige mit ASP har sat det ind du skrev pfp men den samme fejl kommer alligevel, har skisme nok placeret det lidt forkert. :-)
<% 'Åbner connection til databasen
Set conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../log/bruger.mdb")
'Hvis brugeren har submittet formularen if Request.ServerVariables("REQUEST_METHOD") = "POST" then
'Tjecker om felterne er udfyld if (Request.Form("tlf") <> "" AND Request.Form("fornavn") <> "" AND Request.Form("efternavn") <> "" AND Request.Form("adresse") <> "" AND Request.Form("postnr") <> "" AND Request.Form("by") <> "" AND Request.Form("land") <> "" AND Request.Form("e-mail") <> "") then
'Tilføjer brugeren til databasen Set rs = Server.CreateObject("ADODB.Recordset") strSQL = "select * from nyheder" rs.Open strsql, conn, 1, 3
Set conn = Server.CreateObject("ADODB.Connection") Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../log/bruger.mdb")
'Hvis brugeren har submittet formularen if Request.ServerVariables("REQUEST_METHOD") = "POST" then
'Tjecker om felterne er udfyld if (Request.Form("tlf") <> "" AND Request.Form("fornavn") <> "" AND Request.Form("efternavn") <> "" AND Request.Form("adresse") <> "" AND Request.Form("postnr") <> "" AND Request.Form("by") <> "" AND Request.Form("land") <> "" AND Request.Form("e-mail") <> "") then
'Tilføjer brugeren til databasen Set rs = Server.CreateObject("ADODB.Recordset") ' strSQL = "select * from nyheder" strSQL = "select * from nyheder where tlf='" & Server.HTMLEncode(Request("tlf")) & "'" rs.Open strsql, conn, 1, 3
Nå da da. Du har måske lagt dit telefon nummer som en integer i databasen. Det er en klassisk begynderfejl. 1) Det er IKKE en integer, da du aldrig skal regne på den 2) Den kan indeholde meget andet end cifre "11111111/22222222" hvis en bruger vil angive 2, eller "11111111-333" hvis med lokalnummer, eller "+46 11111111" hvis fra udlandet 3) Når du laver en HTML encode på den, mener du jo heller ikke det er et tal.
Men ok da. Prøv så: strSQL = "select * from nyheder where tlf=" & Request("tlf")
jeg ville dele de 200 point mellem jer alle 3, men pfp fik dem alle sammen, og erikjacobsen som jeg ville have givet 100 point var slet ikke på min liste.
Hvis jeg kan give jeg point på en anden måde så skriv lige tilbage så får i de point, for ret skal sgu være ret.
PS: har rettet If not rs.eof or rs.bof then til If rs.eof or rs.bof then så virker det.
Pointene har heller ikke min største interesse. Så hvis det er nogle involverede i dette som er interesseret i point, kan jeg sagtens overføre dem.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.