/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Asp Access Database problemer, med at upat~
Fra : Dennis Christiansen


Dato : 09-06-04 08:54

Hej,

Har et problem, når jeg prøver på at opdater min Access database,
melder den fejl, når jeg prøver at opdatere via en form:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE
statement.
/FlexLearn/editupdate.asp, line 64

Men det kan godt være det mig, der har stirret mig blind på min
kode, for jeg synes ikke sådan lige, at jeg kan se en fejl:


' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/flexlearn.mdb")
Conn.Open DSN
' SQL sætning opbygges
strSQL = "UPDATE kursuer SET "
strSQL = strSQL & "link = strLink , "
strSQL = strSQL & "navn = strNavn , "
strSQL = strSQL & "kort_beskrivelse = strKort_Beskrivelse , "
strSQL = strSQL & "beskrivelse = strBeskrivelse , "
strSQL = strSQL & "varighed_uger = strVarighed_Uger , "
strSQL = strSQL & "varighed_dage = strVarighed_Dage , "
strSQL = strSQL & "tid = strTid , "
strSQL = strSQL & "WHERE Id = strId"

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

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Martin Jørgensen (09-06-2004)
Kommentar
Fra : Martin Jørgensen


Dato : 09-06-04 09:08

Hej Dennis

Dennis Christiansen wrote in
dk.edb.internet.webdesign.serverside.asp:
> Hej,
>
> Har et problem, når jeg prøver på at opdater min Access database,
> melder den fejl, når jeg prøver at opdatere via en form:
>
> Error Type:
> Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
> [Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE
> statement.
> /FlexLearn/editupdate.asp, line 64
>
> Men det kan godt være det mig, der har stirret mig blind på min
> kode, for jeg synes ikke sådan lige, at jeg kan se en fejl:
>
>
> ' Databaseforbindelse
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/flexlearn.mdb")
> Conn.Open DSN
> ' SQL sætning opbygges
> strSQL = "UPDATE kursuer SET "
> strSQL = strSQL & "link = strLink , "
> strSQL = strSQL & "navn = strNavn , "
> strSQL = strSQL & "kort_beskrivelse = strKort_Beskrivelse , "
> strSQL = strSQL & "beskrivelse = strBeskrivelse , "
> strSQL = strSQL & "varighed_uger = strVarighed_Uger , "
> strSQL = strSQL & "varighed_dage = strVarighed_Dage , "
> strSQL = strSQL & "tid = strTid , "
> strSQL = strSQL & "WHERE Id = strId"
>
'Prøv at bruge denne slutning på din UPDATE sætning,
'så skulle du gerne kunne se hvad der kommer med
'over i din SQL streng.

Response.Write strSQL
'Conn.Execute(strSQL)
'Conn.Close
'Set Conn = Nothing

>' SQL sætning eksekveres
> Conn.Execute(strSQL)
>
> ' Luk databaseforbindelse
> Conn.Close
> Set Conn = Nothing
>
> --

Mvh
Martin Jørgensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

pepss (09-06-2004)
Kommentar
Fra : pepss


Dato : 09-06-04 09:27


"Dennis Christiansen" skrev

> Har et problem, når jeg prøver på at opdater min Access database,
> melder den fejl, når jeg prøver at opdatere via en form:

[snip]

> Men det kan godt være det mig, der har stirret mig blind på min
> kode, for jeg synes ikke sådan lige, at jeg kan se en fejl:

[snip kode]

prøv at gøre som der står i http://asp-faq.dk/article/?id=41 (1) så kan du
udskrive din sql.


(1)
i dit tilfælde skal der stå:
Response.Write "SQL-sætning bliver: " & strSQL
Response.End


--
Pepss
Den ordblinde der prøver at blive webdesigner
Fræk frækkere www.cafe-flirt.dk
De frække noveller www.novelle.cafe-flirt.dk



Dennis Christiansen (09-06-2004)

<td valign="top"><input type="text" value="<% Response.Write rs("link") %>"
name="link" style="width:400px;height:20px;border: solid black 1px;"></td>
</tr>
<tr>
<td valign="top"><span class="tekst">kort beskrivelse:</span></td>
<td valign="top"></td>
<td valign="top"><textarea name="kort_beskrivelse"
style="width:400px;height:60px;border: solid black 1px;"><% Response.Write
rs("kort_beskrivelse") %></textarea></td>
</tr>
<tr>
<td valign="top"><span class="tekst">beskrivelse:</span></td>
<td valign="top"></td>
<td valign="top"><textarea name="beskrivelse"
style="width:400px;height:140px;border: solid black 1px;"><% Response.Write
rs("beskrivelse") %></textarea></td>
</tr>
<tr>
<td valign="top"><span class="tekst">Varighed (uger):</span></td>
<td valign="top"></td>
<td valign="top"><input type="text" value="<% Response.Write
rs("varighed_uger") %>" name="varighed_uger"
style="width:400px;height:20px;border: solid black 1px;"></td>
</tr>
<tr>
<td valign="top"><span class="tekst">Varighed (dage):</span></td>
<td valign="top"></td>
<td valign="top"><input type="text" value="<% Response.Write
rs("varighed_dage") %>" name="varighed_dage"
style="width:400px;height:20px;border: solid black 1px;"></td>
</tr>
<tr>
<td colspan="3" valign="top"><input type="submit" value="Opdater"><input
type="reset" value="Ryd felter"></td>
</tr>
</table>
</form>

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Kommentar
Fra : Dennis Christiansen


Dato : 09-06-04 10:57

pepss wrote in dk.edb.internet.webdesign.serverside.asp:
> "Dennis Christiansen" skrev
>
> > Har et problem, når jeg prøver på at opdater min Access database,
> > melder den fejl, når jeg prøver at opdatere via en form:
>
> [snip]
>
> > Men det kan godt være det mig, der har stirret mig blind på min
> > kode, for jeg synes ikke sådan lige, at jeg kan se en fejl:
>
> [snip kode]
>
> prøv at gøre som der står i http://asp-faq.dk/article/?id=41 (1) så kan du
> udskrive din sql.
>
>
> (1)
> i dit tilfælde skal der stå:
> Response.Write "SQL-sætning bliver: " & strSQL
> Response.End
>
>
> --
> Pepss
> Den ordblinde der prøver at blive webdesigner
> Fræk frækkere www.cafe-flirt.dk
> De frække noveller www.novelle.cafe-flirt.dk
>
>
Okay, nu skriver den:

SQL-sætning bliver: UPDATE kursuer SET link = strLink , navn = strNavn ,
kort_beskrivelse = strKort_Beskrivelse , beskrivelse = strBeskrivelse ,
varighed_uger = strVarighed_Uger , tid = strTid , varighed_dage =
strVarighed_Dage , WHERE Id = strId

Men jeg synes det er mærkeligt, at den ikke for værdierne med ud fra formen,
for jeg har gennem tjekket for om jeg skulle have stavet nogle ” name=”” ”
dimserne forkert, jeg sætter dem lige ind neden under, så i kan kikke på
dem..

Modtage dims(på den side som skal opdatere databasen):

strId = Request.Form("id")
strId = Replace(strId, "'", "''")

strTid = Request.Form("tid")
strTid = Replace(strTid, "'", "''")

strNavn = Request.Form("navn")
strNavn = Replace(strNavn, "'", "''")
   
strLink = Request.Form("link")
strLink = Replace(strLink, "'", "''")
   
strKort_Beskrivelse = Request.Form("kort_beskrivelse")
strKort_Beskrivelse = Replace(strKort_Beskrivelse, "'", "''")
   
strBeskrivelse = Request.Form("beskrivelse")
strBeskrivelse = Replace(strBeskrivelse, "'", "''")
   
strVarighed_Uger = Request.Form("varighed_uger")
strVarighed_Uger = Replace(strVarighed_Uger, "'", "''")
   
strVarighed_Dage = Request.Form("varighed_dage")
strVarighed_Dage = Replace(strVarighed_Dage, "'", "''")

Formen, som sender dataen til modtage siden:

<form action="editupdate.asp" method="post">
<input type="hidden" value="<% Response.Write rs("id") %>" name="id">
<input type="hidden" value="<% Response.Write rs("tid") %>" name="tid">
<table border="0">
<tr>
<td valign="top"><span class="tekst">kursus navn:</span></td>
<td valign="top"></td>
<td valign="top"><input type="text" value="<% Response.Write rs("navn") %>"
name="navn" style="width:400px;height:20px;border: solid black 1px;"></td>
</tr>
<tr>
<td valign="top"><span class="tekst">evt link til kursus:</span></td>
<td valign="top"><span class="tekst">http://
Jens Gyldenkærne Cla~ (09-06-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 09-06-04 12:55

Dennis Christiansen skrev:

> SQL-sætning bliver: UPDATE kursuer SET link = strLink , navn =
> strNavn , kort_beskrivelse = strKort_Beskrivelse , beskrivelse
> = strBeskrivelse , varighed_uger = strVarighed_Uger , tid =
> strTid , varighed_dage = strVarighed_Dage , WHERE Id = strId

Som du har opdaget får du variabelnavnene og ikke værdierne ind i
sql-sætningen.

> Men jeg synes det er mærkeligt, at den ikke for værdierne med
> ud fra formen, for jeg har gennem tjekket for om jeg skulle
> have stavet nogle ” name=”” ” dimserne forkert, jeg sætter dem
> lige ind neden under, så i kan kikke på dem..

[snip kode]

Du tildeler værdier til dine variable helt korrekt - men problemet
er i opbygningen af sql-sætningen.

Her er et uddrag af koden som den stod i dit første indlæg:

   strSQL = "UPDATE kursuer SET "
   strSQL = strSQL & "link = strLink , "
   strSQL = strSQL & "navn = strNavn , "


strLink er en variabel, men det kan asp-parseren ikke se, fordi den
står inde i asp-anførselstegn. Du skal altså bruge
strengsammensætning med & for at få fat i værdien:

   strSQL = "UPDATE kursuer SET "
   strSQL = strSQL & "link = " & strLink & ", "
   strSQL = strSQL & "navn = " & strNavn & ", "

Desuden skal tekstværdier i en sql-kommando puttes ind i sql-
anførselstegn (apostroffer). De tre linjer skal derfor skrives:

   strSQL = "UPDATE kursuer SET "
   strSQL = strSQL & "link = '" & strLink & "', "
   strSQL = strSQL & "navn = '" & strNavn & "', "

Fortsæt selv med resten - men husk at talfelter ikke skal have
anførselstegn omkring sig.

NB: Du må gerne klippe lidt mere i dine citater.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Dennis Christiansen (10-06-2004)
Kommentar
Fra : Dennis Christiansen


Dato : 10-06-04 08:22

Jens GyldenkærneClausen wrote in dk.edb.internet.webdesign.serverside.asp:
> Dennis Christiansen skrev:
>
> > SQL-sætning bliver: UPDATE kursuer SET link = strLink , navn =
> > strNavn , kort_beskrivelse = strKort_Beskrivelse , beskrivelse
> > = strBeskrivelse , varighed_uger = strVarighed_Uger , tid =
> > strTid , varighed_dage = strVarighed_Dage , WHERE Id = strId
>
> Som du har opdaget får du variabelnavnene og ikke værdierne ind i
> sql-sætningen.
>
> > Men jeg synes det er mærkeligt, at den ikke for værdierne med
> > ud fra formen, for jeg har gennem tjekket for om jeg skulle
> > have stavet nogle ” name=”” ” dimserne forkert, jeg sætter dem
> > lige ind neden under, så i kan kikke på dem..
>
> [snip kode]
>
> Du tildeler værdier til dine variable helt korrekt - men problemet
> er i opbygningen af sql-sætningen.
>
> Her er et uddrag af koden som den stod i dit første indlæg:
>
>    strSQL = "UPDATE kursuer SET "
>    strSQL = strSQL & "link = strLink , "
>    strSQL = strSQL & "navn = strNavn , "
>
>
> strLink er en variabel, men det kan asp-parseren ikke se, fordi den
> står inde i asp-anførselstegn. Du skal altså bruge
> strengsammensætning med & for at få fat i værdien:
>
>    strSQL = "UPDATE kursuer SET "
>    strSQL = strSQL & "link = " & strLink & ", "
>    strSQL = strSQL & "navn = " & strNavn & ", "
>
> Desuden skal tekstværdier i en sql-kommando puttes ind i sql-
> anførselstegn (apostroffer). De tre linjer skal derfor skrives:
>
>    strSQL = "UPDATE kursuer SET "
>    strSQL = strSQL & "link = '" & strLink & "', "
>    strSQL = strSQL & "navn = '" & strNavn & "', "
>
> Fortsæt selv med resten - men husk at talfelter ikke skal have
> anførselstegn omkring sig.
>
> NB: Du må gerne klippe lidt mere i dine citater.
> --
> Jens Gyldenkærne Clausen
> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html

Okay.. det virker sgu :)

Tak for hjælpen til jeg alle sammen!! :)

Mvh

Dennis

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (10-06-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 10-06-04 09:25

Dennis Christiansen skrev:

> Okay.. det virker sgu :)
>
> Tak for hjælpen til jeg alle sammen!! :)

Velbekomme.

Hvis du vil gøre lidt til gengæld, må du gerne læse andet afsnit på
siden her: <http://html.dk/nyhedsgrupper/usenet.asp> ("Gælder der
nogle regler for nyhedsgrupperne?")

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste