Avatar billede gr8m8 Novice
01. maj 2003 - 09:28 Der er 15 kommentarer og
1 løsning

Editer en oprettet post problem...

Hejsa,

jeg har en medlems side med tilhørende admin modul. Alt virker i dette admin modul på nær Editer og jeg kan simpelthen ik se hvad der er galt. :(

Admin Demo  : www.theforge.dk/test/members_admin.asp
Medlem Demo : www.theforge.dk/test/members.asp

min kode der skulle opdatere Medlemmet kan ses her :
http://www.aspalliance.com/aylar/ViewPasteCode.aspx?PasteCodeID=815
Avatar billede gr8m8 Novice
01. maj 2003 - 11:07 #1
Er der noget galt med den her kode :

<%
' 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("members.mdb")
Conn.Open DSN

id = request("ID")
navn = request("navn")
nick = request("nick")
email = request("email")
city = request("city")
bday = request("bday")
connnection = request("connection")
billedeurl = request("billedeurl")
funktion = request("funktion")
aktiv = request("aktiv")
os = request("os")
cpu = request("cpu")
mouse = request("mouse")
headset = request("headset")
rifle = request("rifle")
pistol = request("pistol")
map = request("map")
team = request("team")

' SQL sætning opbygges
strSQL = UPDATE members SET ID = 'ID', navn = 'navn', nick = 'nick', email = 'email', city = 'city', bday = 'bday', connection = 'connection', billedeurl = 'billedeurl', funktion = 'funktion', aktiv = 'aktiv', os = 'os', cpu = 'cpu', mouse = 'mouse', headset = 'headset', rifle = 'rifle', pistol = 'pistol', map = 'map', team = 'team'
WHERE id = 'ID'

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
Avatar billede Spotgun Seniormester
01. maj 2003 - 11:29 #2
strSQL = "UPDATE members SET ID = '"& ID &"', navn = '"& navn &"', nick = '"& nick &"', email = '"& email &"', city = '"& city &"', bday = '"& bday &"', connection = '"& connection &"', billedeurl = '"& billedeurl &"', funktion = '"& funktion &"', aktiv = '"& aktiv &"', os = '"& os &"', cpu = '"& cpu &"', mouse = '"& mouse &"', headset = '"& headset &"', rifle = '"& rifle &"', pistol = '"& pistol &"', map = '"& map &"', team = '"& team &"'
WHERE id = '"& ID &"'"

Prøv med det her i stedet for...
Avatar billede Spotgun Seniormester
01. maj 2003 - 11:30 #3
Det kan dog være du skal droppe din "SET ID = '"& ID &"'"  - jeg kan ikke helt huske om access er glad for at man ændrer et autonummer-felt, som jeg går ud fra det er...
Avatar billede gr8m8 Novice
01. maj 2003 - 12:08 #4
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0409)
Strengkonstanten er uafsluttet
/web/fishhouse/v30/members/edit_member_to_db.asp, line 35, column 426
strSQL = "UPDATE members SET navn = '"& navn &"', nick = '"& nick &"', email = '"& email &"', city = '"& city &"', bday = '"& bday &"', connection = '"& connection &"', billedeurl = '"& billedeurl &"', funktion = '"& funktion &"', aktiv = '"& aktiv &"', os = '"& os &"', cpu = '"& cpu &"', mouse = '"& mouse &"', headset = '"& headset &"', rifle = '"& rifle &"', pistol = '"& pistol &"', map = '"& map &"', team = '"& team &"'
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------^
Avatar billede gr8m8 Novice
01. maj 2003 - 12:10 #5
Jeg har en Nyheds del der virker med edit og det er med den her kode :

<%
' 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("news.mdb")
Conn.Open DSN

Function fncTextChange(strText)
  strTekst = Trim(strText)
  strTekst = Replace(strTekst,vbCrLf,"<BR>")
  strTekst = Replace(strTekst,"'","´")
  fncTextChange = strTekst
End Function

indhold = fncTextChange(request.form("nyhed"))
titel = request("titel")
id = request("id")
author = request("forfatter")


' SQL sætning opbygges
'strSQL = "INSERT INTO news (titel, news, dato, author) VALUES('"& Request.Form("titel") &"','"& indhold &"','"& now() &"','"& Request.Form("forfatter") &"')"
strSQL = "UPDATE news set titel = '"&titel&"', news = '"&indhold&"', author = '"&author&"' WHERE ID = "&id
' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

Det er jo sammen princip jeg bruger til den anden, men den virker bare ik af en eller anden latterlig grund og jeg aner ik hvorfor :(
Avatar billede Spotgun Seniormester
01. maj 2003 - 12:16 #6
Din update-sætning mangler en afsluttende "

Så skulle den gerne virke!
Avatar billede gr8m8 Novice
01. maj 2003 - 12:36 #7
Med den her kode :

<%
' 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("members.mdb")
Conn.Open DSN

id = request("ID")
navn = request("navn")
nick = request("nick")
email = request("email")
city = request("city")
bday = request("bday")
connnection = request("connection")
billedeurl = request("billedeurl")
funktion = request("funktion")
aktiv = request("aktiv")
os = request("os")
cpu = request("cpu")
mouse = request("mouse")
headset = request("headset")
rifle = request("rifle")
pistol = request("pistol")
map = request("map")


' SQL sætning opbygges
strSQL = "UPDATE members SET id = '"& id &"', navn = '"& navn &"', nick = '"& nick &"', email = '"& email &"', city = '"& city &"', bday = '"& bday &"', connection = '"& connection &"', billedeurl = '"& billedeurl &"', funktion = '"& funktion &"', aktiv = '"& aktiv &"', os = '"& os &"', cpu = '"& cpu &"', mouse = '"& mouse &"', headset = '"& headset &"', rifle = '"& rifle &"', pistol = '"& pistol &"', map = '"& map &"', team = '"& team &"', WHERE id = '"& ID &"'"

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

Får jeg nu denne her fejl :

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i UPDATE-sætningen.
/web/fishhouse/v30/members/edit_member_to_db.asp, line 38


satme for underligt det her sys jeg godt nok :)
Avatar billede Spotgun Seniormester
01. maj 2003 - 12:49 #8
Check dine datatyper i databasen - hvis der er tal imellem, skal dataene ikke pakkes ind i ' ' ...
Avatar billede gr8m8 Novice
01. maj 2003 - 13:05 #9
Ny fejl :

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
/web/fishhouse/v30/members/edit_member_to_db.asp, line 39

Ved denne SQL string :

strSQL = "UPDATE members SET navn = '"& navn &"', nick = '"& nick &"', email = '"& email &"', city = '"& city &"', bday = '"& bday &"', connection = '"& connection &"', billedeurl = '"& billedeurl &"', funktion = '"& funktion &"', aktiv = '"& aktiv &"', os = '"& os &"', cpu = '"& cpu &"', mouse = '"& mouse &"', headset = '"& headset &"', rifle = '"& rifle &"', pistol = '"& pistol &"', map = '"& map &"', team = "& team &" WHERE ID = '"&id&"'"

Håber der er mere hjælp at hente :)

ID er autonummerering, team er tal så der har jeg fjernet ''
Avatar billede Spotgun Seniormester
01. maj 2003 - 13:13 #10
strSQL = "UPDATE members SET navn = '"& navn &"', nick = '"& nick &"', email = '"& email &"', city = '"& city &"', bday = #"& bday &"#, connection = '"& connection &"', billedeurl = '"& billedeurl &"', funktion = '"& funktion &"', aktiv = '"& aktiv &"', os = '"& os &"', cpu = '"& cpu &"', mouse = '"& mouse &"', headset = '"& headset &"', rifle = '"& rifle &"', pistol = '"& pistol &"', map = '"& map &"', team = "& team &" WHERE ID = "& id

Jeg går ud fra, at bday er dato, og ikke tekst? Og så har jeg fjernet '' om din slut-id.

Prøv evt. at lave en:

Response.Write strSQL
Response.End

lige efter du har genereret SQL'en. Post så hvad den skriver... Fjern derefter "Response.End" og fortæl om den giver en fejl dér...
Avatar billede gr8m8 Novice
01. maj 2003 - 13:27 #11
Med :

Response.Write strSQL
Response.End

->

UPDATE members SET navn = 'Michael Hermansen', nick = ')<(((((*> ScUm^', email = 'scum@theforge.dk', city = 'Odense', bday = '24-07-1979', connection = '1024/256 Kb/s', billedeurl = 'scum.jpg', funktion = 'Webmaster/ Player', aktiv = 'Yes', os = 'Windows XP', cpu = 'Athlon XP, 2400 Mhz', mouse = 'Logitech Optical MX300', headset = 'Microsoft Sidewinder', rifle = 'A1 Arctic Warfare/Magnum', pistol = 'H&K USP .45 Tactical', map = 'de_prodigy', team = 1 WHERE ID =

->

Med Response.Write strSQL

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "ID =".
/web/fishhouse/v30/members/edit_member_to_db.asp, line 44
Avatar billede Spotgun Seniormester
01. maj 2003 - 13:36 #12
Din request("ID") er tom - check om du i din formular kalder den ID, med store bogstaver - sørg i hvert fald for at værdierne alle steder du bruger dem (både på formularen og asp-siden) står 100% ens.

Ellers ser resten umiddelbart fint ud - check dog om bday-feltet er tekst eller dato! Hvis det er dato, skal det omkranses af ## i stedet for ''.
Avatar billede gr8m8 Novice
01. maj 2003 - 14:17 #13
den kalder den ID som det medlem man vil editere har fået via Autonummerering.
fks. edit_member.asp?id=13 derefter tager den de info der ligger i databasen under dette ID og putter det ind i de felter der kan redigeres i.

Jeg har osse på et tidspunkt i mine mange forsøg på at få dette til at virke fået en fejl med den ikke kunne opdatere ID'en da denne ikke var opdaterbar.

Jeg ved virkelig ikke hvad der er galt med den ID.

Hvis du er interesseret kan jeg ZIPPE mine filer og lægge dem op til Download hvis det er.
Avatar billede gr8m8 Novice
01. maj 2003 - 14:24 #14
bday feltet er bare tekst forresten
Avatar billede Spotgun Seniormester
01. maj 2003 - 14:34 #15
Som jeg nævnte tidligere, så er din variabel med ID'et tom - derfor får du fejlen om, at der mangler en operator i udtrykket "ID =".

Løsningen er at checke, at alle steder du bruger ID'et - dvs. i formularen, linket, asp-siden (request'en), og databasen, at de alle hedder nøjagtigt det samme - altså uden forskel i store/små bogstaver. Så burde det virke...
Avatar billede gr8m8 Novice
01. maj 2003 - 15:10 #16
allright, jeg vil tjekke det ud så :)
Du skal ihvertfald have tusind tak for din hjælp.
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