Avatar billede djsteiner Nybegynder
26. februar 2009 - 22:39 Der er 23 kommentarer og
1 løsning

Fejl i sql sætning

Hej Eksperter har fået et problem med en fejl som jeg ikke lige kan få løst.

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
/ikasttelt.dk/cms/includes/admincases.asp, line 217


her den sql hvor fejlen opstår i


strSQL = "SELECT * FROM Koncerter WHERE Koncert_ID="&ret&""

    Set rs = myConn.Execute(strSQL)
Avatar billede mitbrugernavn Praktikant
26. februar 2009 - 22:48 #1
strSQL = SELECT * FROM Koncerter WHERE Koncert_ID="&ret

    Set rs = myConn.Execute(strSQL)
Avatar billede softspot Forsker
26. februar 2009 - 22:49 #2
Prøv dette:

if isnumeric(ret) then
  strSQL = "SELECT * FROM Koncerter WHERE Koncert_ID=" & ret
else
  response.write "ret er ikke numerisk!"
  response.end
end if


og fortæl hvad den siger.

Det er sandsynligvis fordi ret ikke indeholder nogen værdi at du får en fejl i kaldet til databasen.
Avatar billede softspot Forsker
26. februar 2009 - 22:51 #3
Eller i virkeligheden burde det nok være således (da en uinitieret variabel, dvs. som er empty, også returnerer true for kaldet til isnumeric):

if not isempty(ret) and isnumeric(ret) then
  strSQL = "SELECT * FROM Koncerter WHERE Koncert_ID=" & ret
else
  response.write "ret er ikke numerisk!"
  response.end
end if
Avatar billede djsteiner Nybegynder
26. februar 2009 - 22:55 #4
nu kommer denne fejl frem

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
/ikasttelt.dk/cms/includes/admincases.asp, line 218

Jeg har skrevet line 218 uf for den liner hvor fejlen er



if isnumeric(ret) then
  strSQL = "SELECT * FROM Koncerter WHERE Koncert_ID="& ret

line 218    Set rs = myConn.Execute(strSQL)
else
  response.write "ret er ikke numerisk!"
  response.end
end if
Avatar billede softspot Forsker
26. februar 2009 - 22:57 #5
Prøv også lige den sidste version jeg foreslog :-)
Avatar billede djsteiner Nybegynder
26. februar 2009 - 22:58 #6
prøvede lige sådan her

if not isempty(ret) and isnumeric(ret) then
  strSQL = "SELECT * FROM Koncerter WHERE Koncert_ID=" & ret

    Set rs = myConn.Execute(strSQL)
else
  response.write "ret er ikke numerisk!"
  response.end
end if

så kom dette resultat 

ret er ikke numerisk!
Avatar billede softspot Forsker
26. februar 2009 - 23:05 #7
Godt, det tyder på at ret ikke bliver sat nogen steder inden du forsøger at kalde din database. Det er givetvis fordi du ikke overfører en værdi fra Request.QueryString eller Request.Form til variablen "ret", eller fordi du har stavet forkert i variabelnavnet eller request-parameteren...
Avatar billede djsteiner Nybegynder
26. februar 2009 - 23:37 #8
dette er linket hvor variablen kommer fra

<a href="admin.asp?page=ret&ret=<%=rsred("Koncert_ID")%>"  onclick="return confirm('Er du sikker på at du vil rediger dette projekt?')">Rediger</a>

og her er Request.QueryStringen

ret = Request.QueryString("ret")
Avatar billede softspot Forsker
26. februar 2009 - 23:52 #9
Du kan jo evt. prøve at vise hele koden?

Der må være noget andet galt, hvis de kodelinier du viser er korrekte...
Avatar billede djsteiner Nybegynder
27. februar 2009 - 00:22 #10
Her er koden fra den CASE hvor fejlen op står i

<%
case "ret"
Session.LCID = 1030

    Response.Buffer = "True"
   
    ret = Request.QueryString("ret")
   

'if not isempty(ret) and isnumeric(ret) then
  strSQL = "SELECT * FROM Koncerter WHERE Koncert_ID=" & ret

    Set rs = myConn.Execute(strSQL)
'else
  'response.write "ret er ikke numerisk!"
  'response.end
'end if

    Response.AddHeader "cache-control","private"
    Response.AddHeader "pragma","no-cache"
    Response.CacheControl = "no-cache"
    Response.CacheControl = "private"
    Response.Expires = -1
    Response.ExpiresAbsolute = Now() -1
%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <title>Ikast-Telt.dk</title>

    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="expires" content="-1" />
    <meta http-equiv="pragma" content="no-cache" />
    <meta name="author" content="Ikast-Telt.dk" />
    <meta name="description" content="Ikast-Telt.dk" />
    <meta name="keywords" content="Ikast-Telt.dk" />

    <link href="kalender.css" rel="stylesheet" type="text/css" />

    <script type="text/javascript">
    <!--
    function GoToURL()
    {
    window.location="admin.asp?page=ret&ret=<%=rs("Koncert_ID")%>";
    }
    //-->
    </script>
</head>

<body>

<!-- INDHOLD START -->

<div id="indhold">

<br />
<br />

<br />
<br />

<!-- FORMULAR START -->

<table cellpadding="10" cellspacing="0" style="margin-left: auto; margin-right: auto; width: 350px">
<tr>
<td style="width: 100%" valign="top">

<!-- FORM NAME NØDVENDIGT FOR "DATE PICKER" -->

<form action="admin.asp?page=ret&Koncert_ID" method="post" name="koncert_formular">

<div>
<%
    ' -> DENNE FUNKTION KONVERTERER MS ACCESS DATABASE DATO FORMATET 'MM/DD/ÅÅÅÅ' TIL 'MM/DD/ÅÅ' FOR DATO SAMMENLIGNING.
    Function exFormatDate(strDate, DateTemplate)

    If not IsDate(strDate) Then
    exFormatDate = strDate

    Exit Function
    End If

    DateTemplate = replace(DateTemplate,"%mmmm",MonthName(DatePart("m",strDate),False),1,-1,0)
    DateTemplate = replace(DateTemplate,"%mmm",MonthName(DatePart("m",strDate),True),1,-1,0)
    DateTemplate = replace(DateTemplate,"%mm",right("0" & DatePart("m",strDate),2),1,-1,0)
    DateTemplate = replace(DateTemplate,"%m",DatePart("m",strDate),1,-1,0)
    DateTemplate = replace(DateTemplate,"%dddd",WeekDayName(DatePart("w",strDate,1),False),1,-1,0)
    DateTemplate = replace(DateTemplate,"%ddd",WeekDayName(DatePart("w",strDate,1),True),1,-1,0)
    DateTemplate = replace(DateTemplate,"%dd",right("0" & DatePart("d",strDate),2),1,-1,0)
    DateTemplate = replace(DateTemplate,"%d",DatePart("d",strDate),1,-1,0)
    DateTemplate = replace(DateTemplate,"%o",intToOrdinal(DatePart("d",strDate)),1,-1,0)
    DateTemplate = replace(DateTemplate,"%yyyy",DatePart("yyyy",strDate),1,-1,0)
    DateTemplate = replace(DateTemplate,"%yy",right(DatePart("yyyy",strDate),2),1,-1,0)
    DateTemplate = replace(DateTemplate,"%y",cInt(right(DatePart("yyyy",strDate),2)),1,-1,0)
    exFormatDate = DateTemplate
    End Function

    Function intToOrdinal(i)
    sNum = cStr(i)
    iNum = i mod 10

    Select Case iNum
    Case 1
    sExt = "st"

    Case 2
    sExt = "nd"

    Case 3
    sExt = "rd"

    Case Else
    sExt = "th"
    End Select

    If i > 10 And i <20 Then sExt = "th"

    sNum = sNum & sExt
    intToOrdinal = sNum

    End Function

    Dim Koncert_Dato_Formular, Koncert_Dato_Database

    Koncert_Dato_Formular = Request.Form("Koncert_Dato")
    Koncert_Dato_Database = rs("Koncert_Dato")

    Dim Koncert_Sted_Formular, Koncert_Sted_Database

    Koncert_Sted_Formular = Request.Form("Koncert_Sted")
    Koncert_Sted_Database = rs("Koncert_Sted")

    ' -> DETTE GODKENDER INDHOLDET FRA FORMULARFELTERNE.
    ValidateForm = Request.Form("ValidateForm")

    If ValidateForm = "Yes" Then

    Koncert_Dato = Request.Form("Koncert_Dato")
    Koncert_Sted = Trim(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Request.Form("Koncert_Sted"), "=", ""), "<", ""), ">", ""), """", "&quot;"), "'", "&acute;"), "  ", " "), "  ", " "))

    If Koncert_Dato = "" Then
    Error_Koncert_Dato = "Yes"

    End If

    If Koncert_Sted = "" Then
    Error_Koncert_Sted = "Yes"

    End If
    End If

    If ValidateForm = ""_
    Or Error_Koncert_Dato = "Yes"_
    Or Error_Koncert_Sted = "Yes"_
    Then
%>
<span class="plain_text"><span class="bold">Koncert Dato</span> (mm/dd/åå) &nbsp; <span class="error"><%If Error_Koncert_Dato = "Yes" Then Response.Write "Hovsa! Prøv igen..." End If%></span>
<br /><input name="koncert_dato" onfocus="this.blur();" style="width: 100px" type="text" value="<%If Request.Form("koncert_formular") = "REDIG&Eacute;R" Then Response.Write exFormatDate(Koncert_Dato_Formular, "%mm/%dd/%yy") Else Response.Write exFormatDate(Koncert_Dato_Database, "%mm/%dd/%yy") End If%>" /><a href="java script:void(window.open('includes/date_picker_koncerter.html?koncert_dato', '', 'width=200,height=210,top=250,left=250'))"><img alt="Dato Vælger" height="16" src="../images//kalender.gif" style="border: 0px" title="Dato Vælger" width="16" /></a>
<br /></span>
<input type="hidden" name="Koncert_ID" value="<%=Koncert_ID%>" />
<br />

<span class="plain_text"><span class="bold">Koncert Sted</span> &nbsp; <span class="error"><%If Error_Koncert_Sted = "Yes" Then Response.Write "Hovsa! Prøv igen..." End If%></span>
<br /><input maxlength="255" name="koncert_sted" style="width: 260px" type="text" value="<%If Request.Form("koncert_formular") = "REDIG&Eacute;R" Then Response.Write Koncert_Sted_Formular Else Response.Write Koncert_Sted_Database End If%>" />
<br /></span>

<br />

<table>
<tr>
<td><input class="button" onmouseout="this.className='button'" onmouseover="this.className='buttonHover'" type="submit" value="REDIG&Eacute;R" /></td>
<td><input class="button" onclick="GoToURL();" onmouseout="this.className='button'" onmouseover="this.className='buttonHover'" type="reset" value="BEGYND FORFRA" /></td>
</tr>
</table>

<!-- BEMÆRK: KNAPPERNE ER PLACEREDE I EN TABEL FOR FULD UDNYTTELSE AF 'mouseover' EGENSKABERNE I OPERA 7 BROWSEREN -->

<input name="ValidateForm" type="hidden" value="Yes" />

</div>
</form>

</td>
</tr>
</table>

<!-- FORMULAR SLUT -->

</div>

<!-- INDHOLD SLUT -->

</body>
</html>
<%
    Function Dansk_Dato(dato_paa_dansk)
    Dansk_Dato = Year(dato_paa_dansk) & "/" & Month(dato_paa_dansk) & "/" & Day(dato_paa_dansk)
    End Function

    Else

    ' -> DETTE ER VARIABLERNE FRA FORMULARFELTERNE.
    'Dim Koncert_Dato
    'Dim Koncert_Sted
   
Koncert_ID  = replace(Request.Form("Koncert_ID"),"'","''")
Koncert_Dato = Dansk_Dato(Request.Form("Koncert_Dato"))
Koncert_Sted = replace(Request.Form("Koncert_Sted"),"'","''")

Koncert_ID = Request.QueryString("Koncert_ID")
sql = "SELECT * FROM koncerter WHERE Koncert_ID ="&Koncert_ID
    set rs = myConn.Execute(sql)

strSQL = "update koncerter set Koncert_Dato='"&Koncert_Dato&"', Koncert_Sted='"&Koncert_Sted&"' WHERE Koncert_ID="&Koncert_ID
   

    myConn.Execute(strSQL)

    rs.Close
    Set rs = Nothing

    myConn.Close
    Set myConn = Nothing

    Response.Redirect("default.htm")

    End If
%>
Avatar billede djsteiner Nybegynder
27. februar 2009 - 00:32 #11
Her er lidt INFo omkring det jeg er hved at lave.

Jeg er hved at lave et CMS hvor man skal kunne rediger nogle indstatte datoer som bliver indstat i Database ved hjælp af en Datepicker.

Disse Datoer vil jeg så gerne have mulighed for at kunne Redigere.

Der hvor fejlen så kommer er når man trykker på Redigere knappen (submit Knappen)

Håber dette er forståligt
Avatar billede softspot Forsker
27. februar 2009 - 00:35 #12
Det kan jeg godt nok ikke gennemskue med det kode der!

Jeg synes dog dette ser lidt suspekt ud (og det er måske derfor en idé lige at dobbelttjekke denne linie):

<form action="admin.asp?page=ret&Koncert_ID" method="post" name="koncert_formular">


Hvornår er det du får fejlen, for hvis det er i forbindelse med at du sender formularen tilbage til serveren, kan jeg da godt forstå at det ikke fungerer, for ret er jo ikke defineret i querystring-listen ved form post...
Avatar billede djsteiner Nybegynder
08. marts 2009 - 21:22 #13
lukker dette spørgsmål igen
Avatar billede softspot Forsker
09. marts 2009 - 17:02 #14
Hvad skete der lige der!? Fandt du en løsning som slet ikke var nævnt her, eller dropper du det og hvorfor er det lige at os der har brugt tid på dig bare skal glemmes...?
Avatar billede djsteiner Nybegynder
09. marts 2009 - 23:27 #15
Det beklare jeg lige jeg opretter lige et spørgsmål mere og så får du lige point beklare meget.

her linket http://www.eksperten.dk/spm/867360
Avatar billede djsteiner Nybegynder
09. marts 2009 - 23:33 #16
jeg blev nød til at opgive da jeg ikke kunne finde nogen løsning på problemet men derfor skal dem som hjælper mig selvfølig have point ved ikke lige hvad jeg tækte på.

Mange tak for hjælpen
Avatar billede softspot Forsker
10. marts 2009 - 00:11 #17
Det er ikke så meget point som det er et "tak for hjælpen", bare så man ikke føler det ikke har været spild af tid :-)

Men jeg tror i øvrigt at løsningen (eller i det mindste en del af problemet) fandtes i indlæg #12, da du poster med en konstant parameter i stedet for en værdi... Prøv lige at kig på de det indlæg igen og se om dette ikke skulle bringe dig videre...
Avatar billede djsteiner Nybegynder
10. marts 2009 - 09:37 #18
Ja jeg har prøvet at denne liner om <form action="admin.asp?page=ret&Koncert_ID" method="post" name="koncert_formular">

men lige meget hvad jeg gør kommer den samme fejlmeddelse.
Avatar billede softspot Forsker
10. marts 2009 - 10:19 #19
Såvidt jeg kan se, mangler du da en værdi til Koncert_ID i din parameter. Desuden refererer du til Request.QueryString("ret") i din serverside kode, hvilken jeg heller ikke kan se du overfører nogen steder (du overfører page=ret, men det er jo noget andet).

Dit form-element burde mindst følge dette format:

<form action="admin.asp?page=ret&Koncert_ID=&ret=" method="post" name="koncert_formular">

eksempelvis:

<form action="admin.asp?page=ret&Koncert_ID=<%=Koncert_ID%>&ret==<%=Koncert_ID%>" method="post" name="koncert_formular">
Avatar billede softspot Forsker
10. marts 2009 - 10:20 #20
Ups! Der kom lige et lighedstegn for meget med i den sidste linie:

<form action="admin.asp?page=ret&Koncert_ID=<%=Koncert_ID%>&ret=<%=Koncert_ID%>" method="post" name="koncert_formular">
Avatar billede djsteiner Nybegynder
10. marts 2009 - 13:52 #21
<form action="admin.asp?page=ret&Koncert_ID=<%=Koncert_ID%>&ret=<%=Koncert_ID%>" method="post" name="koncert_formular">

med denne løsning kommer der stadig den samme fejlmeddelse.
Avatar billede softspot Forsker
10. marts 2009 - 14:05 #22
Ja, men meningen er også lidt at du selv skal undersøge sagen og forsøge at få rettet koden til så den benytter de rigtige variable. Det er jo dig der har koden og overblikket over hvordan det hænger sammen. Jeg har bare givet dig noget at arbejde videre med :-)
Avatar billede djsteiner Nybegynder
10. marts 2009 - 18:47 #23
ja det ved jeg jeg og det lykkes vel også på et tidspunkt at finde fejlen.

Det ser heldigvis sådan ud at den hjemmeside som jeg/vi arbejder med her er kommet op og køre og de personer som jeg har lavet den for er tilfredse med det som det er nu.

Så det er mest for min engen skyld at jeg stadig kæmper med det.

Endnu en gang tak for hjælpen.
Avatar billede softspot Forsker
10. marts 2009 - 19:19 #24
Fair nok... når der er andre og vigtigere ting at bruge tiden på, så er det da det man skal gøre :-)

Velbekomme :-)
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