Avatar billede bjarne1234 Nybegynder
13. juli 2004 - 15:54 Der er 10 kommentarer og
1 løsning

valider data inden write

Hej igen
Som før har jeg en databasen som der kan skrives til. Databasen indeholder 10 kolonner/felter men kun ét er vigtigt at få kontroleret når nye data skal indskrives. Feltet hedder "spiller" og kan have alle numre, men 2 må selvfølgelig ikke være ens. Hvordan kontrolerer jeg det via form-feltet?
Min koder ser sådan ud:

<%
set database = Server.CreateObject("ADODB.Connection")
    connect="Driver={Microsoft Access Driver (*.mdb)}; DBQ="& server.mappath("../databaser/testdatabase.mdb")
    database.Open connect
%>

<form action="write.asp" method="get" name="nypost">
  <input name="spiller" type="text" size="50" maxlength="30">
  <font size="2" face="Verdana, Arial, Helvetica, sans-serif">Spilletr&oslash;je
  <strong>no</strong>.<br>
  <br>
  </font>
  <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  <input name="pabryst" type="text" size="50" maxlength="30">
  </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"> Paradedragt
  <strong>bryst<br>
  </strong><br>
  </font> <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  <input name="paryg" type="text" size="50" maxlength="30">
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  Paradedragt <strong>ryg<br>
  </strong><br>
  </font>
  <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  <input name="trbryst" type="text" size="50" maxlength="30">
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  Spilletr&oslash;je <strong>bryst<br>
  </strong><br>
  </font>
  <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  <input name="trryg" type="text" size="50" maxlength="30">
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  Spilletr&oslash;je <strong>ryg<br>
  </strong><br>
  </font>
  <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  <input name="trærmeh" type="text" size="50" maxlength="30">
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  Spilletr&oslash;je <strong>&aelig;rme H<br>
  </strong><br>
  </font>
  <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  <input name="trærmev" type="text" size="50" maxlength="30">
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  Spilletr&oslash;je <strong>&aelig;rme V<br>
  </strong><br>
  </font>
  <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  <input name="shbag" type="text" size="50" maxlength="30">
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  Shorts <strong>bag<br>
  </strong><br>
  </font>
  <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  <input name="shbenh" type="text" size="50" maxlength="30">
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  Shorts <strong>ben H<br>
  </strong><br>
  </font>
  <font color="#FFFFFF" size="2" face="Verdana, Arial, Helvetica, sans-serif">
  <input name="shbenv" type="text" size="50" maxlength="30">
</font><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
  Shorts <strong>ben V</strong></font><br>
  <br>
  <input type="submit" name="Submit" value="Gem post">
  <input type="reset" name="Submit2" value="Slet alt">
</form>

<%
dim data
Set data=Server.CreateObject ("ADODB.Recordset")
data.Open "spiller", database, 2, 2
%>

<%
data.AddNew
    data("spiller")=Request.QueryString("spiller")
    data("pabryst")=Request.QueryString("pabryst")
    data("paryg")=Request.QueryString("paryg")
    data("trbryst")=Request.QueryString("trbryst")
    data("trryg")=Request.QueryString("trryg")
    data("trærmeh")=Request.QueryString("trærmeh")
    data("trærmev")=Request.QueryString("trærmev")
    data("shbag")=Request.QueryString("shbag")
    data("shbenh")=Request.QueryString("shbenh")
    data("shbenv")=Request.QueryString("shbenv")
data.Update
Response.Redirect("readall.asp")
%>
Avatar billede ellebaek Nybegynder
13. juli 2004 - 16:10 #1
jeg vil mene det er nok at rette det her:
<%
dim data
Set data=Server.CreateObject ("ADODB.Recordset")
data.Open "spiller", database, 2, 2
%>

<%
data.AddNew
    data("spiller")=Request.QueryString("spiller")
    data("pabryst")=Request.QueryString("pabryst")
    data("paryg")=Request.QueryString("paryg")
    data("trbryst")=Request.QueryString("trbryst")
    data("trryg")=Request.QueryString("trryg")
    data("trærmeh")=Request.QueryString("trærmeh")
    data("trærmev")=Request.QueryString("trærmev")
    data("shbag")=Request.QueryString("shbag")
    data("shbenh")=Request.QueryString("shbenh")
    data("shbenv")=Request.QueryString("shbenv")
data.Update
Response.Redirect("readall.asp")
%>
til:

<%
dim data, rs, sql
set rs = server.createobject("adodb.connection")
sql = "select * from spiller where spiller = " & request.querystring("spiller")
set rs = rs.execute(sql)
if rs.eof then
Set data=Server.CreateObject ("ADODB.Recordset")
data.Open "spiller", database, 2, 2
%>

<%
data.AddNew
    data("spiller")=Request.QueryString("spiller")
    data("pabryst")=Request.QueryString("pabryst")
    data("paryg")=Request.QueryString("paryg")
    data("trbryst")=Request.QueryString("trbryst")
    data("trryg")=Request.QueryString("trryg")
    data("trærmeh")=Request.QueryString("trærmeh")
    data("trærmev")=Request.QueryString("trærmev")
    data("shbag")=Request.QueryString("shbag")
    data("shbenh")=Request.QueryString("shbenh")
    data("shbenv")=Request.QueryString("shbenv")
data.Update
Response.Redirect("readall.asp")
else
response.write "Spilleren findes allerede"
end if
%>

Altså at du laver et kald i datbasen hvor du chekker for om han allerede findes i databasen.. Gør han ikke det, så indsættes data, ellers skrives at spilleren allerede findes..!
Avatar billede bjarne1234 Nybegynder
13. juli 2004 - 16:57 #2
Der er en fejl. Der meldes følgende:

Error Type:
ADODB.Connection (0x800A0E78)
Operation is not allowed when the object is closed.

Linien der meldes på er:
set rs = rs.execute(sql)
Avatar billede ellebaek Nybegynder
13. juli 2004 - 17:36 #3
ja, min fejl...

<%
dim data, rs, sql
set rs = server.createobject("adodb.connection")
sql = "select * from spiller where spiller = " & request.querystring("spiller")
rs.open connect
set rs = rs.execute(sql)
if rs.eof then
Set data=Server.CreateObject ("ADODB.Recordset")
data.Open "spiller", database, 2, 2
%>

<%
data.AddNew
    data("spiller")=Request.QueryString("spiller")
    data("pabryst")=Request.QueryString("pabryst")
    data("paryg")=Request.QueryString("paryg")
    data("trbryst")=Request.QueryString("trbryst")
    data("trryg")=Request.QueryString("trryg")
    data("trærmeh")=Request.QueryString("trærmeh")
    data("trærmev")=Request.QueryString("trærmev")
    data("shbag")=Request.QueryString("shbag")
    data("shbenh")=Request.QueryString("shbenh")
    data("shbenv")=Request.QueryString("shbenv")
data.Update
Response.Redirect("readall.asp")
else
response.write "Spilleren findes allerede"
end if
%>


Sådan her skal det se ud :-)
Glemte lige at åbne rs..
Avatar billede bjarne1234 Nybegynder
13. juli 2004 - 18:14 #4
Øhh nu kommer denne fejl:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Avatar billede ellebaek Nybegynder
13. juli 2004 - 18:36 #5
hmm....

hvilken linie.?
Hvis det er en af dem jeg har skrevet, så prøv det her:

<%
dim data, rs, sql
set rs = server.createobject("adodb.connection")
sql = "select * from spiller where spiller = " & request.querystring("spiller")
DSN="Driver={Microsoft Access Driver (*.mdb)}; DBQ="& server.mappath("../databaser/testdatabase.mdb")

rs.open DSN
set rs = rs.execute(sql)
if rs.eof then
Set data=Server.CreateObject ("ADODB.Recordset")
data.Open "spiller", database, 2, 2
%>

<%
data.AddNew
    data("spiller")=Request.QueryString("spiller")
    data("pabryst")=Request.QueryString("pabryst")
    data("paryg")=Request.QueryString("paryg")
    data("trbryst")=Request.QueryString("trbryst")
    data("trryg")=Request.QueryString("trryg")
    data("trærmeh")=Request.QueryString("trærmeh")
    data("trærmev")=Request.QueryString("trærmev")
    data("shbag")=Request.QueryString("shbag")
    data("shbenh")=Request.QueryString("shbenh")
    data("shbenv")=Request.QueryString("shbenv")
data.Update
Response.Redirect("readall.asp")
else
response.write "Spilleren findes allerede"
end if
%>
Avatar billede bjarne1234 Nybegynder
13. juli 2004 - 21:58 #6
det er linien:
rs.open connect
Avatar billede ellebaek Nybegynder
14. juli 2004 - 11:42 #7
prøv det jeg skrev sidst..!
Avatar billede bjarne1234 Nybegynder
14. juli 2004 - 14:53 #8
Hej så er jeg tilbage.
Det har jeg prøvet, men det gik slet ikke. Hvad er det for en fejl jeg får?
Avatar billede bjarne1234 Nybegynder
14. juli 2004 - 16:33 #9
Jeg prøver noget andet. Men som tak for hjælpen alligevel får du point
Avatar billede ellebaek Nybegynder
14. juli 2004 - 16:35 #10
Mange tak for points så.. :-)
..Ellebæk!
Avatar billede ellebaek Nybegynder
14. juli 2004 - 16:38 #11
men lige en beskrivelse af fejlen...

Den betyder at den connection man prøver at udføre ikke findes..
Altså kan det være fordi din database ikke ligger på den placering som du har angivet..!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester