Avatar billede moritz Nybegynder
17. december 2002 - 21:00 Der er 12 kommentarer og
1 løsning

Hjælp til opdatering af database

Hej jeg mangler lidt hjælp til opdatering af en database. jeg får fejl :( og ved ikke hvordan jeg skal stykke update.asp sammen...

Poster lige asp delen i mine 2 filer

Modifynews.asp ------------------------------

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "SERVER=LOCALHOST;DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath(".../.../db/database.mdb")
Conn.Open DSN

SQL = "SELECT * FROM NEWS WHERE ID = " & Request.querystring("ID")
Set RS = Conn.Execute( SQL )
if( NOT RS.EOF ) then
  newsID    = RS("ID")
    newsSubject = RS("Subject")
    newsSmall = RS("Small")
    newsLarge = RS("Large")
    newsAf = RS("Af")
    newsDate = RS("Date")
end if

RS.Close
Conn.Close

Set RS = nothing
Set Conn = nothing
%>

samt naturligvis inputforms med newssubject, newslarge osv

Update.asp ----------------------------------
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "SERVER=LOCALHOST;DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath(".../.../db/database.mdb")
Conn.Open DSN

strSQL = "UPDATE NEWS SET newsSubject='" & Request.Form("newsSubject") & "', "
strSQL = strSQL & "newsSmall='" & replace(Request.Form("newsSmall"),"'","''") & "', "
strSQL = strSQL & "newsLarge='" & Request.Form("newsLarge") & "', "
strSQL = strSQL & "newsAf='" & Request.Form("newsAf") & "', "
strSQL = strSQL & "newsDate='" & Request.Form("newsDate") & "', "

Conn.Execute( strSQL )
Conn.Close

Set Conn = Nothing
response.write "<br>Modification succesfull"
%>


Modifynews.asp virker fint, problemet er jeg ikke lgie er klar over hvordan update.asp skal stykkes sammen og jeg får errors...
Avatar billede moritz Nybegynder
17. december 2002 - 21:02 #1
ka da lige poste starten af formen i modifynews.asp selvom den vist er irrelevant

<form action="update.asp" method="post">
<font size="1" face="Tahoma">
<input type="hidden" name="newsID" value="<%= newsID %>" >Heading<br>
<input type="text" name="newsSubject"value="<%= newsSubject %>" >
&nbsp;<br>
Avatar billede eagleeye Praktikant
17. december 2002 - 21:08 #2
En god ide vil være at lave enkelt ' om til dobbelt '' så der ikke om syntax fejl i SQL sætningen. Jeg kan se du har gjort det for et felt men det skal gøre for alle tekst felter hvor der kan komme en '.

For du ikke skal opdater alle poster i databasen skal du huske en WHERE del på UPDATE SQL'en:

strSQL = "UPDATE NEWS SET newsSubject='" & Request.Form("newsSubject") & "', "
strSQL = strSQL & "newsSmall='" & replace(Request.Form("newsSmall"),"'","''") & "', "
strSQL = strSQL & "newsLarge='" & Request.Form("newsLarge") & "', "
strSQL = strSQL & "newsAf='" & Request.Form("newsAf") & "', "
strSQL = strSQL & "newsDate='" & Request.Form("newsDate") & "' "
strSQL = strSQL & "WHERE ID = " & Request.Form("newsID")
Avatar billede moritz Nybegynder
17. december 2002 - 21:19 #3
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 5.
/glad2003/admin/update.asp, line 24


vist sidste linie (id)
Avatar billede eagleeye Praktikant
17. december 2002 - 21:24 #4
Prøv at udskrive din SQL så kan det være lettere at se evt fejl:

Så i stedert for :  Conn.Execute( strSQL )
Så skriv : Response.write strSQL
Avatar billede moritz Nybegynder
17. december 2002 - 21:30 #5
ok den udskriver
UPDATE NEWS SET newsSubject='Krig og Ansvar', newsSmall='”I krigen ofrer de små sig for de stores uenighed.”Bedre kan det næsten ikke siges, for hvad er krig i bund og grund?Efter min opfattelse er det et omfattende problem der ikke kunne løses på diplomatisk vis, og som derefter blev befolkningens ansvar.', newsLarge='Soldaternes ansvar. For hvem rammer en krig egentlig? Den typiske familie, der bliver sendt i krig for fædrelandet, og ofrer livet for det, eller staten der startede den? Staten/statsoverhovederne får deres løn for at løse problemer på fredelig vis, store som små, så på det grundlag er det underligt at det er muligt at smide hele dette enorme ansvar over på befolkningen.Den befolkning der har valgt præsidenten af den ene grund at lede landet, for at tage ansvar.Jeg ved godt man ikke kan bebrejde f.eks. Frankrig eller England de 2 verdenskrige der har været, men jeg tænker på de lande der er ansvarlig for al den død og ødelæggelse der i tidens løb har været i det vi kalder krig.', newsAf='pete.dk', newsDate='09-12-2002' WHERE ID = 2
Modification succesfull
Avatar billede moritz Nybegynder
17. december 2002 - 21:31 #6
tag dig ikke af indholdet ;)
Avatar billede eagleeye Praktikant
17. december 2002 - 21:35 #7
;) Hvilken datatype er newsDate i databasen?
Er det tekst eller dato felt?
Avatar billede moritz Nybegynder
17. december 2002 - 21:37 #8
dato og klokkeslet
Avatar billede eagleeye Praktikant
17. december 2002 - 21:42 #9
Ok så skal der # ved acess og formatet skal være mm-dd-yyyy eller yyyy-mm-dd altså US/UK format i SQL. Også selvom du har dato som DK format..:


datoStr = Year(Request.Form("newsDate")) & "-" & Month(Request.Form("newsDate")) & "-" & day(Request.Form("newsDate"))
strSQL = "UPDATE NEWS SET newsSubject='" & Request.Form("newsSubject") & "', "
strSQL = strSQL & "newsSmall='" & replace(Request.Form("newsSmall"),"'","''") & "', "
strSQL = strSQL & "newsLarge='" & Request.Form("newsLarge") & "', "
strSQL = strSQL & "newsAf='" & Request.Form("newsAf") & "', "
strSQL = strSQL & "newsDate=#" & datoStr & "# "
strSQL = strSQL & "WHERE ID = " & Request.Form("newsID")
Avatar billede moritz Nybegynder
17. december 2002 - 21:46 #10
Ok problemet fremkommer dog stadig det der "for få parametre den skriver"...

Side ligger på http://petethepech.frip.dk/glad2003/admin/chosenews.asp evt...

Har det nogen indflydelse at newslarge/small = notat eller er det det samme som text?
Avatar billede eagleeye Praktikant
17. december 2002 - 21:52 #11
Nej det skulle ikke være et problem...
notat er det samme som tekst.
Avatar billede moritz Nybegynder
17. december 2002 - 22:02 #12
ok, jeg har svært ved at se hvad problemet så kunne være
Avatar billede eagleeye Praktikant
17. december 2002 - 22:08 #13
så kan det måske være et kolonnenavb som er skrevet forkert.. Der ser umiddelbart rigtigt ud.
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