Avatar billede iggipop Nybegynder
21. april 2004 - 11:35 Der er 8 kommentarer og
1 løsning

Fejl ved opdatering af database

Jeg får denne fejl når jeg submitter fra min anden side til den side der skal poste data i min access db.

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.
/test/krc/tipsbasen/add_tips.asp, line 34

Her er siden der fejler :

<%
'Dimension variables
Dim adoCon              'Holds the Database Connection Object
Dim rsAddComments        'Holds the recordset for the new record to be added
Dim strSQL            'Holds the SQL query to query the database

StrHjemmeside             = Trim(Replace(replace(Request.Form("Hjemmeside"),"'",""),"<","&lt;"))

if    strHjemmeside <> "" then
if LCase(left(strhjemmeside,7)) <> "http://" then
  strHjemmeside = "http://" & strHjemmeside
end if
end if

'Create an ADO connection object
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tips.mdb")

'Create an ADO recordset object
Set rsAddComments = Server.CreateObject("ADODB.Recordset")

'Initialise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT tipstabel.forfatter, tipstabel.overskrift, tipstabel.kategori, tipstabel.hyper, tipstabel.tip, tipstabel.ip FROM tipstabel;"

'Set the cursor type we are using so we can navigate through the recordset
rsAddComments.CursorType = 2

'Set the lock type so that the record is locked by ADO when it is updated
rsAddComments.LockType = 3

'Open the recordset with the SQL query
rsAddComments.Open strSQL, adoCon

'Tell the recordset we are adding a new record to it
rsAddComments.AddNew

'Add a new record to the recordset
rsAddComments.Fields("forfatter")              = Request.Form("forfatter")
rsAddComments.Fields("overskrift")             = Request.Form("overskrift")
rsAddComments.Fields("kategori")              = Request.Form("kategori")
rsAddComments.Fields("hyper")                     = Request.Form("hyper")
rsAddComments.Fields("tip")                    = Request.Form("tip")
rsAddComments.Fields("ip")                       = Request.ServerVariables("REMOTE_ADDR")

'Write the updated recordset to the database
rsAddComments.Update

'Reset server objects
rsAddComments.Close
Set rsAddComments = Nothing
Set adoCon = Nothing

'find id som vi lige har sat ind.
sqlo = "SELECT max(ID_no) FROM tipstabel"
Set rso = dbc.Execute(sqlo)   

oid = Cint(rso(0))

if Request.Form("billede") = "on" then
Response.Redirect "indlaes_fil.asp?id=" & Server.URLEncode(oid)
else
Response.Redirect "view_search_selected.asp?id=" & Server.URLEncode(oid)
end if

%>   

Kan nogen se hvad der er galt ?
Avatar billede and_ Nybegynder
21. april 2004 - 11:50 #1
Prøv at udskifte din sql:

strSQL = "SELECT tipstabel.forfatter, tipstabel.overskrift, tipstabel.kategori, tipstabel.hyper, tipstabel.tip, tipstabel.ip FROM tipstabel;"

med

strSQL = "SELECT * FROM tipstabel"
Avatar billede iggipop Nybegynder
21. april 2004 - 13:15 #2
Så kommer jeg lidt længere....men nu fejler den med :

Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: 'dbc'
/test/krc/tipsbasen/add_tips.asp, line 58
Avatar billede and_ Nybegynder
21. april 2004 - 13:22 #3
du skal huske at oprette et nyt databaseobjekt:

<%
'Dimension variables
Dim adoCon              'Holds the Database Connection Object
Dim rsAddComments        'Holds the recordset for the new record to be added
Dim strSQL            'Holds the SQL query to query the database

StrHjemmeside            = Trim(Replace(replace(Request.Form("Hjemmeside"),"'",""),"<","&lt;"))

if    strHjemmeside <> "" then
if LCase(left(strhjemmeside,7)) <> "http://" then
  strHjemmeside = "http://" & strHjemmeside
end if
end if

Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tips.mdb")
Set rsAddComments = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT tipstabel.forfatter, tipstabel.overskrift, tipstabel.kategori, tipstabel.hyper, tipstabel.tip, tipstabel.ip FROM tipstabel;"
rsAddComments.CursorType = 2
rsAddComments.LockType = 3
rsAddComments.Open strSQL, adoCon

rsAddComments.AddNew
rsAddComments.Fields("forfatter")              = Request.Form("forfatter")
rsAddComments.Fields("overskrift")            = Request.Form("overskrift")
rsAddComments.Fields("kategori")              = Request.Form("kategori")
rsAddComments.Fields("hyper")                    = Request.Form("hyper")
rsAddComments.Fields("tip")                    = Request.Form("tip")
rsAddComments.Fields("ip")                      = Request.ServerVariables("REMOTE_ADDR")
rsAddComments.Update

rsAddComments.Close
Set rsAddComments = Nothing
Set adoCon = Nothing

'find id som vi lige har sat ind.
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tips.mdb")
Set rso = Server.CreateObject("ADODB.Recordset")
sqlo = "SELECT max(ID_no) FROM tipstabel"
Set rso = dbc.Execute(sqlo)   

oid = Cint(rso(0))

if Request.Form("billede") = "on" then
Response.Redirect "indlaes_fil.asp?id=" & Server.URLEncode(oid)
else
Response.Redirect "view_search_selected.asp?id=" & Server.URLEncode(oid)
end if

rso.Close
Set rso = Nothing
Set rso = Nothing
%>
Avatar billede and_ Nybegynder
21. april 2004 - 13:23 #4
og det nye objekt er dette:

'find id som vi lige har sat ind.
Set adoCon = Server.CreateObject("ADODB.Connection") '-->> HER
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tips.mdb") '-->> HER
Set rso = Server.CreateObject("ADODB.Recordset") '-->> HER
sqlo = "SELECT max(ID_no) FROM tipstabel" '-->> HER
Set rso = dbc.Execute(sqlo)    '-->> HER

oid = Cint(rso(0))

if Request.Form("billede") = "on" then
Response.Redirect "indlaes_fil.asp?id=" & Server.URLEncode(oid)
else
Response.Redirect "view_search_selected.asp?id=" & Server.URLEncode(oid)
end if

rso.Close '-->> HER
Set rso = Nothing '-->> HER
Set rso = Nothing '-->> HER
Avatar billede iggipop Nybegynder
21. april 2004 - 14:42 #5
Error Type:
Får nu denne fejl :

Microsoft VBScript runtime (0x800A01A8)
Object required: 'dbc'
/test/krc/tipsbasen/add_tips.asp, line 59

*****

<%
'Dimension variables
Dim adoCon              'Holds the Database Connection Object
Dim rsAddComments        'Holds the recordset for the new record to be added
Dim strSQL            'Holds the SQL query to query the database

StrHjemmeside             = Trim(Replace(replace(Request.Form("Hjemmeside"),"'",""),"<","&lt;"))

if    strHjemmeside <> "" then
if LCase(left(strhjemmeside,7)) <> "http://" then
  strHjemmeside = "http://" & strHjemmeside
end if
end if

'Create an ADO connection object
Set adoCon = Server.CreateObject("ADODB.Connection")

'Set an active connection to the Connection object using a DSN-less connection
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tips.mdb")

'Create an ADO recordset object
Set rsAddComments = Server.CreateObject("ADODB.Recordset")

'Initialise the strSQL variable with an SQL statement to query the database
strSQL = "SELECT tipstabel.forfatter, tipstabel.overskrift, tipstabel.kategori, tipstabel.hyper, tipstabel.tip, tipstabel.ip FROM tipstabel;"

'Set the cursor type we are using so we can navigate through the recordset
rsAddComments.CursorType = 2

'Set the lock type so that the record is locked by ADO when it is updated
rsAddComments.LockType = 3

'Open the recordset with the SQL query
rsAddComments.Open strSQL, adoCon

'Tell the recordset we are adding a new record to it
rsAddComments.AddNew

'Add a new record to the recordset
rsAddComments.Fields("forfatter")              = Request.Form("forfatter")
rsAddComments.Fields("overskrift")             = Request.Form("overskrift")
rsAddComments.Fields("kategori")              = Request.Form("kategori")
rsAddComments.Fields("hyper")                     = Request.Form("hyper")
rsAddComments.Fields("tip")                    = Request.Form("tip")
rsAddComments.Fields("ip")                       = Request.ServerVariables("REMOTE_ADDR")

'Write the updated recordset to the database
rsAddComments.Update

'Reset server objects
rsAddComments.Close
Set rsAddComments = Nothing
Set adoCon = Nothing

'find id som vi lige har sat ind.
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tips.mdb")
Set rso = Server.CreateObject("ADODB.Recordset")
sqlo = "SELECT max(ID_no) FROM tipstabel"
Set rso = dbc.Execute(sqlo)   

oid = Cint(rso(0))

if Request.Form("billede") = "on" then
Response.Redirect "indlaes_fil.asp?id=" & Server.URLEncode(oid)
else
Response.Redirect "view_search_selected.asp?id=" & Server.URLEncode(oid)
end if

rso.Close
Set rso = Nothing
Set rso = Nothing
%>
Avatar billede and_ Nybegynder
21. april 2004 - 14:44 #6
sorry... det er mig der kejler :)

skift dette:
'find id som vi lige har sat ind.
Set adoCon = Server.CreateObject("ADODB.Connection")
adoCon.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tips.mdb")
Set rso = Server.CreateObject("ADODB.Recordset")
sqlo = "SELECT max(ID_no) FROM tipstabel"
Set rso = dbc.Execute(sqlo)   

ud med dette:
Set dbc = Server.CreateObject("ADODB.Connection")
dbc.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("tips.mdb")
Set rso = Server.CreateObject("ADODB.Recordset")
sqlo = "SELECT max(ID_no) FROM tipstabel"
Set rso = dbc.Execute(sqlo)
Avatar billede iggipop Nybegynder
21. april 2004 - 15:20 #7
Så virker det...taak...
Smid et svar
Avatar billede and_ Nybegynder
21. april 2004 - 15:21 #8
... Det var så lidt :)  vi er her til at hjælpe hinanden :)
Avatar billede iggipop Nybegynder
21. april 2004 - 15:25 #9
Må jeg så henlede din opmærksomhed på:

http://www.eksperten.dk/spm/491825

Nu du er så godt igang ;o)
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