Avatar billede danskeb Nybegynder
14. januar 2003 - 08:31 Der er 11 kommentarer og
1 løsning

hjælp til script

100 point for brugbart svar.

Hvis id ikke findes skal scriptet afvikles, ellers skal der updates.

Hvordan ?

Set Conn = Server.CreateObject
"ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=c:\websider\beans.com\db.mdb"
Conn.Open DSN
strSQL = "Insert into users(id, name) values('" & Request.Form("id") & "', '" & Request.Form("name")& "')"
Conn.Execute(strSQL)
Avatar billede bredum Nybegynder
14. januar 2003 - 08:46 #1
Lave en
sql = "select * FROM users where id = " & Request.Form("id")
IF mitarray.BOF THEN
sript
END IF

hvis du skal have hele koden, så skriv det lige..
Avatar billede bredum Nybegynder
14. januar 2003 - 08:47 #2
sript = script
Avatar billede eagleeye Praktikant
14. januar 2003 - 08:49 #3
Så må du hendte føste og tjekke på om ID findes...

Hvis ID er autonummer skal det ikke med i Insert


SQL = "SELECT ID FROM users where id = " & Request.Form("id")
Set rs = Conn.Execute (SQL)

if rs.EOF then
  'ID findes ikke så indsæt
  strSQL = "Insert into users(id, name) values('" & Request.Form("id") & "', '" & Request.Form("name")& "')"
else
  'ID finden så update
  strSQL = "update users set name '" & Request.Form("name")& "' where id = " & Request.Form("id")
end if
Conn.Execute (strSQL)
Avatar billede bredum Nybegynder
14. januar 2003 - 08:51 #4
Denne burde virke
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/database.mdb")
Conn.Open DSN

strSQL = "Select * from users WHERE id =" & Request.Form("id")
Set rs = Conn.Execute(strSQL)

IF rs.EOF THEN
insert..
ELSE
Update
END IF
Avatar billede danskeb Nybegynder
14. januar 2003 - 15:45 #5
Det giver følgende fejl :

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/hotline/datainsert.asp, line 19

Linie 19 = :Set rs = Conn.Execute(strSQL)

Her er den tilrettede kode:




<%

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=c:\websider\service-info.dk\db\hotline.mdb"
Conn.Open DSN
strSQL = "Select * from hotline WHERE idnummer =" & Request.Form("idnummer")
Set rs = Conn.Execute(strSQL)
if rs.EOF then
  'ID findes ikke så indsæt
  strSQL = "Insert into hotline (idnummer, kundenavn, kundeadr, kundeadr2, kundepostnr, kundeby, kundetele, koebsdato, loebetid, udstyr, fejlbeskrivelse) values('" & Request.Form("idnummer") & "', '" & Request.Form("kundenavn") & "', '" & Request.Form("kundeadr") & "', '" & Request.Form("kundeadr2") & "', '" & Request.Form("kundepostnr")& "', '" & Request.Form("kundeby") & "', '" & Request.Form("kundetele") & "', '" & Request.Form("koebsdato") & "', '" & Request.Form("loebetid") & "', '" & Request.Form("udstyr")& "', '" & Request.Form("fejlbeskrivelse")& "')"
else
  'ID findes så update
  strSQL = "update users set name '" & Request.Form("kundenavn")& "' where idnummer = " & Request.Form("idnummer")
end if
Conn.Execute (strSQL)

%>
Avatar billede danskeb Nybegynder
14. januar 2003 - 16:11 #6
Lille fejl, her er koden som jeg mener den skal se ud (men den virker ikke)

Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=c:\websider\service-info.dk\db\hotline.mdb"
Conn.Open DSN
strSQL = "Select * from hotline WHERE idnummer =" & Request.Form("idnummer")
Set rs = Conn.Execute(strSQL)
if rs.EOF then
  'ID findes ikke så indsæt
  strSQL = "Insert into hotline (kundenavn) values('" & Request.Form("kundenavn")& "')"
else
  'ID findes så update
  strSQL = "update hotline set kundenavn '" & Request.Form("kundenavn")& "' where idnummer = " & Request.Form("idnummer")
end if
Conn.Execute (strSQL)
Avatar billede eagleeye Praktikant
14. januar 2003 - 16:43 #7
Så hvis den skal indsætte så er IDnummer tom i Form'en??

Request.Form("idnummer")
Avatar billede eagleeye Praktikant
14. januar 2003 - 16:45 #8
er idnummer i databasen et autonummer felt?
Avatar billede eagleeye Praktikant
14. januar 2003 - 16:46 #9
Ja svaret er ja til de to sidte spørgsmål så prøv denne kode :


Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=c:\websider\service-info.dk\db\hotline.mdb"
Conn.Open DSN
if Request.Form("idnummer") = "" then
  'ID findes ikke så indsæt
  strSQL = "Insert into hotline (kundenavn) values('" & Request.Form("kundenavn")& "')"
else
  'ID findes så update
  strSQL = "update hotline set kundenavn '" & Request.Form("kundenavn")& "' where idnummer = " & Request.Form("idnummer")
end if
Conn.Execute (strSQL)
Avatar billede danskeb Nybegynder
15. januar 2003 - 07:51 #10
idnummer er ikke et autofelt.
Avatar billede danskeb Nybegynder
15. januar 2003 - 07:57 #11
og idnummer er ikke tomt, hvilket jeg testede med en response.write
Avatar billede eagleeye Praktikant
15. januar 2003 - 18:32 #12
Ok så det tilbage til den anden, men så skal IDnummer med i Insert Into :


Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=c:\websider\service-info.dk\db\hotline.mdb"
Conn.Open DSN
strSQL = "Select * from hotline WHERE idnummer =" & Request.Form("idnummer")
Set rs = Conn.Execute(strSQL)
if rs.EOF then
  'ID findes ikke så indsæt
  strSQL = "Insert into hotline (kundenavn, idnummer) values('" & Request.Form("kundenavn") & "', " & Request.Form("idnummer") & ")"
else
  'ID findes så update
  strSQL = "update hotline set kundenavn '" & Request.Form("kundenavn")& "' where idnummer = " & Request.Form("idnummer")
end if
Conn.Execute (strSQL)
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