Avatar billede plato Juniormester
30. november 2005 - 19:35 Der er 24 kommentarer og
1 løsning

ASP, insert problem

Hejsa NG.

Når denne linie bruges i scriptet virker det fint:

strSQL = "Insert into forum (navn, dato, emne) values('"& Request.Form("navnforum") & "', '" & Request.Form("datoforum") & "', '" & Request.Form("titelb")& "')"

Men så snart jeg tilføjer 'origin og originb' i sætningen melder den fejl:

strSQL = "Insert into forum (navn, dato, emne, origin) values('"& Request.Form("navnforum") & "', '" & Request.Form("datoforum") & "', '" & Request.Form("titelb") & "', '" & Request.Form("originb") & "')"

Input til origin ser sådan her ud, og er en checkbox:
<input type="hidden" name="originb" class="forms" value="True">
Har også prøver med denne form:
<input type="hidden" name="originb" class="forms" checked>
og
<input type="hidden" name="originb" class="forms" True>


origin som er feltet i database er et boolean True/False felt.
Jeg har læst lidt på nettet angående tal ikke må have "" om sig. Men dette kan jeg ikke helt gennemskue.

Nogen der kan hjælpe?

Dette er fejlen:
Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.
Avatar billede softspot Forsker
30. november 2005 - 19:41 #1
Prøv denne kombination:

strSQL = "Insert into forum (navn, dato, emne, origin) values('"& Request.Form("navnforum") & "', '" & Request.Form("datoforum") & "', '" & Request.Form("titelb") & "', " & Request.Form("originb")&"" <> "" & ")"


og en checkboks der ser således ud:

<input type="hidden" name="originb" class="forms" value="enellerandenværdi_BAREIKKETOM!">

Hvis checkboksen er checked vil den findes i request.form ellers ikke. Det er det jeg benytter mig af i denne konstruktion

Request.Form("originb")&"" <> ""
Avatar billede softspot Forsker
30. november 2005 - 19:44 #2
...og det skal vel være en checkboks og ikke et hidden felt...? Eller fungerer ovenstående  eksempel ikke helt efter hensigten :)
Avatar billede plato Juniormester
30. november 2005 - 20:07 #3
Nu kommer fejlen:

Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
Avatar billede plato Juniormester
30. november 2005 - 20:09 #4
Det skal være en checkbox men skjult. Det virker i noget andet kode jeg har lavet. Der indsætter den TRUE i feltet i databasen når jeg benytter:

<input type="hidden" name="originb" class="forms" value="True">
Avatar billede softspot Forsker
30. november 2005 - 20:10 #5
Hmmm... kan evt. være der skal parantes omkring det udtryk jeg indsatte:

strSQL = "Insert into forum (navn, dato, emne, origin) values('"& Request.Form("navnforum") & "', '" & Request.Form("datoforum") & "', '" & Request.Form("titelb") & "', " & (Request.Form("originb")&"" <> "") & ")"
Avatar billede softspot Forsker
30. november 2005 - 20:13 #6
30/11-2005 20:09:09 >> Systemet opfatter det ikke som en tekstboks med den type, hvilket gør at den opfører sig anderledes end en checkboks ville gøre. Derfor skal du, hvis du vil have en checkboks ud af det, ændre koden til:

<input type="checkbox" name="originb" class="forms" value="True" style="display:none">
Avatar billede plato Juniormester
30. november 2005 - 20:18 #7
Så kommer fejlen:

Syntax error in string in query expression ''True)'.

Det er ene og alene pga af den checkbox.
Avatar billede plato Juniormester
30. november 2005 - 20:21 #8
Er det nemmere hvis du får hele koden?
Avatar billede softspot Forsker
30. november 2005 - 20:23 #9
Det ser ud som om der mangler et komma for den sidste parameter (men den SQL jeg har set her mangler ikke dette komma...?

Og du siger at origin er et Ja/Nej-felt i databasen?
Avatar billede plato Juniormester
30. november 2005 - 20:24 #10
Ja, origin er et True/False felt.

Tjekker lige efter komma.
Avatar billede softspot Forsker
30. november 2005 - 20:24 #11
Det kommer an på hvormeget kode der er :)
Avatar billede plato Juniormester
30. november 2005 - 20:26 #12
Jeg kopierede linien fra 30/11-2005 20:10:18.
Nu siger den igen:
Invalid SQL statement; expected 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT', or 'UPDATE'.
Avatar billede plato Juniormester
30. november 2005 - 20:26 #13
<%if Request.Form("forfatterb") <> "" then
strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.Mappath("../../db/data.mdb")
Set objConn = Server.CreateObject ("ADODB.Connection")
objConn.Open strConnect   
        Function fncTextChange(strText)
strTekst = Trim(strText)
            fncTextChange = Replace(strTekst,"'","''")
            fncTextChange = Replace(fncTextChange,"""","""")
            fncTextChange = Replace(fncTextChange,"  "," &nbsp;")
            fncTextChange = Replace(fncTextChange,vbCrLf,"<br>")
            fncTextChange = Replace(fncTextChange,"å","&aring;")
            fncTextChange = Replace(fncTextChange,"æ","&aelig;")
            fncTextChange = Replace(fncTextChange,"ø","&oslash;")
            fncTextChange = Replace(fncTextChange,"Å","&Aring;")
            fncTextChange = Replace(fncTextChange,"Æ","&AElig;")
            fncTextChange = Replace(fncTextChange,"Ø","&Oslash;")
            fncTextChange = Replace(fncTextChange,"[img]","<center><img src='/pics/")
            fncTextChange = Replace(fncTextChange,"[/img]","' alt='Pic'></center>")
            fncTextChange = Replace(fncTextChange,"[imgs]","<img src='/pics/baggrund/")
            fncTextChange = Replace(fncTextChange,"[/imgs]","' alt='Pic'>")
            fncTextChange = Replace(fncTextChange,"","<b>")
            fncTextChange = Replace(fncTextChange,"
","</b>")
            fncTextChange = Replace(fncTextChange,"","<i>")
            fncTextChange = Replace(fncTextChange,"
","</i>")
            fncTextChange = Replace(fncTextChange,"","<u>")
            fncTextChange = Replace(fncTextChange,"
","</u>")
           
        End Function

    indhold = fncTextChange(request.form("anmeldb"))
    indholda = fncTextChange(request.form("boksenb"))
    indholdb = fncTextChange(request.form("teaserb"))
    indholdc = fncTextChange(request.form("omtaleb"))


strSQL = "Insert into forum (navn, dato, emne, origin) values('"& Request.Form("navnforum") & "', '" & Request.Form("datoforum") & "', '" & Request.Form("titelb") & "', " & Request.Form("originb")&"" <> "" & ")"


objConn.Execute(strSQL)


end if
Avatar billede plato Juniormester
30. november 2005 - 20:27 #14
Du skal ikke tage dig af:
indhold = fncTextChange(request.form("anmeldb"))
    indholda = fncTextChange(request.form("boksenb"))
    indholdb = fncTextChange(request.form("teaserb"))
    indholdc = fncTextChange(request.form("omtaleb"))

Det kommer i brug når jeg får denne her checkbox til at virke.
Avatar billede softspot Forsker
30. november 2005 - 20:39 #15
Prøv lige at ændre denne sætning

strSQL = "Insert into forum (navn, dato, emne, origin) values('"& Request.Form("navnforum") & "', '" & Request.Form("datoforum") & "', '" & Request.Form("titelb") & "', " & Request.Form("originb")&"" <> "" & ")"

til denne:

strSQL = "Insert into forum (navn, dato, emne, origin) values('"& Request.Form("navnforum") & "', '" & Request.Form("datoforum") & "', '" & Request.Form("titelb") & "', " & (Request.Form("originb")&"" <> "") & ")"
Avatar billede plato Juniormester
30. november 2005 - 20:47 #16
Igen fejl nu og den indsætter også i forum. Men den sætter ikke origin til true. Og det skal den.
Avatar billede softspot Forsker
30. november 2005 - 20:53 #17
Har du husket at checke din checkbox? Sådan:

<input type="checkbox" name="originb" class="forms" value="True" style="display:none" checked>

Ellers kommer den ikke med over til serveren (det er som nævnt tidligere, kun checkbokse der er afkrydset, som kommer med til serveren).
Avatar billede softspot Forsker
30. november 2005 - 20:54 #18
...jeg går ud fra at du mener "INGEN fejl" når du skriver "igen fejl"... :)
Avatar billede plato Juniormester
30. november 2005 - 20:55 #19
Jeg prøvede lige at lave input feltet om til:
<input type="hidden" name="originb" class="forms" value="True">

Nu virker det. :)

Smider du lige et svar. For det var også ændringen af SQL'en der gjorde det.
Avatar billede softspot Forsker
30. november 2005 - 20:59 #20
Men så vil den jo altid indsætte true i origin... skal den det?
Avatar billede softspot Forsker
30. november 2005 - 20:59 #21
...hvis den skal det, så kan du ligeså godt bare indsætte true i feltet i SQL-sætningen i stedet for.
Avatar billede plato Juniormester
30. november 2005 - 21:01 #22
Lige en enkelt ting, hvis du gider.

Jeg skal have denne her ind i koden:
indholdb

Prøvede sådan her:
strSQL = "Insert into forum (navn, dato, emne, origin, indhold) values('"& Request.Form("navnforum") & "', '" & Request.Form("datoforum") & "', '" & Request.Form("titelb") & "', " & (Request.Form("originb")&"" <> "") & indholdb & "')"

Men nu kan jeg ikke overskue alle de " ' ().. ;)
Avatar billede plato Juniormester
30. november 2005 - 21:02 #23
Ja, den skal altid indsætte true i feltet. Koden bliver brugt til at lægge en anmeldelsen online. Og koden vi har rodet med nu oprette emnet for anmeldelsen i et forum.
Avatar billede plato Juniormester
30. november 2005 - 21:04 #24
Skidt pyt med det sidst. fandt ud af det :)
Avatar billede softspot Forsker
30. november 2005 - 21:59 #25
Godt :)

...og tak for point :)
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