webForumDet fria alternativet

Mismatch

18 svar · 256 visningar · startad av pellsäter

pellsäterMedlem sedan aug. 2000526 inlägg
#1

varför funkar inte detta?

<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "batang.com-fame/biljett"
Set RecSet = Server.CreateObject("ADODB.Recordset")

Visa = "SELECT * FROM forum where id = " & id
RecSet.Open Visa, Connect, 3,3

RecSet("user") = Request.Form("user")
RecSet("rubrik") = Request.Form("rubrik")
RecSet("kommentar") = Request.Form("kommentar")
RecSet("svar") = Request.Form("svar")
RecSet("datum") = Request.Form("datum")
RecSet("usersvar") = Request.Form("usersvar")
RecSet("datumsvar") = Request.Form("datumsvar")

RecSet.Update
RecSet.Close
Connect.Close %>

Får mismatch på den raden med "usersvar". Det är en textarea!

M@rtinMedlem sedan dec. 19992 085 inlägg
#2

Vad har du för datatyp på undersvar i databasen då?

------------------
//M@rtin || Peachy.nu\\

Sue Me!

pellsäterMedlem sedan aug. 2000526 inlägg
#3

det är text. sorry det var ingen textarea utan ett vanligt textfield

får samma fel på raden med "svar" detta är ett memo

VideMedlem sedan dec. 19998 577 inlägg
#4

Du måste väl ha med "RecSet.AddNew" före...

Men varför använder du ett recordset för att lägga till en ny post i databasen? helt onödigt... använd en vanlig INSERT-SQL-sats för det...

------------------
webEye.nu SweQuake.com

pellsäterMedlem sedan aug. 2000526 inlägg
#5

VIll inte lägga till poster utan redigera de som finns där

LarsGMedlem sedan dec. 200012 464 inlägg
#6

En update då

<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "batang.com-fame/biljett"

Visa = _
"update forum " & _
   "set [user] = '" & Request.Form("user") & "'," & _
   " rubrik = '" & Request.Form("rubrik") & "'," & _
   " kommentar = '" & Request.Form("kommentar") & "'," & _
   " svar = '" & Request.Form("svar") & "'," & _
   " datum = #" & Request.Form("datum") & "#," & _
   " usersvar = '" & Request.Form("usersvar") & "'," & _
   " datumsvar = #" & Request.Form("datumsvar") & "# " & _
   " where id = " & id
connect.execute visa,,128
Connect.Close %>

Jag förutsätter att du använder Access
Lite kommentarer:

User är ett reserverat ord i SQL och måste klamras. Du borde egentligen byta namn.

Datumvärden anges inom ##. (Gäller enbart Access använd ' annars) Jag antog att datum och datumsvar har datatypen date.

------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 26 mar 2001]

PatrikBMedlem sedan mars 20002 836 inlägg
#7

.... använd dig av:

.
.
.
RecSet.UpdateBatch

istället för RecSet.Update

cya,
PatrikB

------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.

pellsäterMedlem sedan aug. 2000526 inlägg
#8

Tyvärr så får jag fortfarande fel:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error in date in query expression '##'.

/admin/admin_redigeraforum_ok.asp, line 24

KOden ser ut som den som LarsG skrev

@ndersMedlem sedan juni 200032 969 inlägg
#9

då är det något av dina datum som du inte får med dig från formuläret till sql-frågan.

skriv ut den färdiga sql-frågan med response.write innan du exekverar den, så kan man lättare se vad som är knas.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

pellsäterMedlem sedan aug. 2000526 inlägg
#10

ok. Jag vill kunna ha något av datumfälten tomma. Är det det som spökar tro?

@ndersMedlem sedan juni 200032 969 inlägg
#11

japp. det skapas en del syntaxfel om man bara hoppar över värden.

skall fältet inte uppdateras om datumvärdet är tomt? isf, får du kolla med en if-sats om värdet du får är tomt, om det är det ska du inte ha med det i din update-fråga.

mvh,

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

pellsäterMedlem sedan aug. 2000526 inlägg
#12

Hur f....n lägger man in en ifsats mitt i alltihop.

Förresten så går det bra med de andra fälten även om de är tomma!!

lite kodhjälp till ifsatsen vore inte helt fel!

@ndersMedlem sedan juni 200032 969 inlägg
#13

strängar kan vara tomma, är datum tomt sår värdet null, och det blir trasigt om du anger ##.

Visa = "update forum " & _
"set [user] = '" & Request.Form("user") & "'," & _
" rubrik = '" & Request.Form("rubrik") & "'," & _
" kommentar = '" & Request.Form("kommentar") & "'," & _
" svar = '" & Request.Form("svar") & "',"
if Request.Form("datum") <> "" then Visa = Visa & " datum = #" & Request.Form("datum") & "#," & _
Visa = Visa & " usersvar = '" & Request.Form("usersvar") & "'"
if Request.Form("datumsvar") <> "" then Visa = Visa & ", datumsvar = #" & Request.Form("datumsvar") & "# " & _
Visa = Visa & " where id = " & id

otestat.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

pellsäterMedlem sedan aug. 2000526 inlägg
#14

Nja!!

Följande feltext kommernu

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

[Microsoft][ODBC Microsoft Access Driver] Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.

/admin/admin_redigeraforum_ok.asp, line 26

@ndersMedlem sedan juni 200032 969 inlägg
#15

skriv ut den färdiga sql-frågan med response.write innan du exekverar den, så kan man lättare se vad som är knas.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

pellsäterMedlem sedan aug. 2000526 inlägg
#16

Ok här kommer den

False

plus feltexten innan

LarsGMedlem sedan dec. 200012 464 inlägg
#17

Ja knas var det sa bill.
Knas var ordet sa bull.

Jag såg lite saker i @anders ;) kod

Visa = "update forum " & _
"set [user] = '" & Request.Form("user") & "'," & _
" rubrik = '" & Request.Form("rubrik") & "'," & _
" kommentar = '" & Request.Form("kommentar") & "'," & _
" svar = '" & Request.Form("svar") & "',"
if Request.Form("datum") <> "" then Visa = Visa & " datum = #" & Request.Form("datum") & "#," 
Visa = Visa & " usersvar = '" & Request.Form("usersvar") & "'"
if Request.Form("datumsvar") <> "" then Visa = Visa & ", datumsvar = #" & Request.Form("datumsvar") & "# " 
Visa = Visa & " where id = " & id

Jag tog bort & _ på två rader. Men det förklarar inte varför du fick så där. Du får posta lite mer av koden om det inte hjälper.

------------------
essentitia preter non sans multiplicandum

@ndersMedlem sedan juni 200032 969 inlägg
#18

nämen, förlåt. :r
klantskaft.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>

pellsäterMedlem sedan aug. 2000526 inlägg
#19

Kanon, nu funkar det perfa

Tack så mycket

139 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)