/ 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
Conn.Execute(sql) eller noet helt andet :S
Fra : Daniel Andersen


Dato : 05-02-05 13:16

Hej NG.
Jeg har prøvet at lave en tagwall, og det hele virker fint nok
(tiføje beskeder, og admin kan slette).
Men jeg har også en side hvor man kan redigere en persons indlæg
(ret.asp), men når jeg trykker "gem ændringer" for jeg følgende
fejl:

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Field 'news.tag' cannot
be a zero-length string.
/xsound/ns/ret.asp, line 20

her er selve linje 20:
Conn.Execute(sql)

Og her er hele ret.asp:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
   <title>Xsound</title>
<link rel="stylesheet" type="text/css"
href="../styles/style1.css">
</head>

<body>
<%
' 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

if request.form("id") <> "" then
   id = request.form("id")
   Kommentar = request.form("tag")
   SQL = "Update news set tag = '"& tag &"' where id = "& id
   Conn.Execute(sql)
   
   conn.close
   set conn = nothing
   response.redirect "admin.asp"
else
   id = request.querystring("id")
   SQL = "select tag from news where id = "& id
   set rs = conn.execute(SQL)
   if rs.eof then
      conn.close
      set conn = nothing
      set rs = nothing
      response.redirect "admin.asp"
   end if
   response.write "<form action='' method='post'>"
   response.write "tag:<br>"
   response.write "<textarea name='tag'>"& rs("tag")
&"</textarea><br>"
   response.write "<input type='submit' value='Gem æmdringerne'>"
   response.write "<input type='hidden' name='id' value='"& id
&"'>"
   response.write "</form>"
   set rs = nothing
end if
conn.close
set conn = nothing

%>
</body>
</html>

jeg forstår altså ikke hvorfor det ikk virker, er der nogle der
kan hjælpe mig?

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

 
 
Lars Hoffmann (05-02-2005)
Kommentar
Fra : Lars Hoffmann


Dato : 05-02-05 15:26

Daniel Andersen wrote:
> Hej NG.
> Jeg har prøvet at lave en tagwall, og det hele virker fint nok
> (tiføje beskeder, og admin kan slette).
> Men jeg har også en side hvor man kan redigere en persons indlæg
> (ret.asp), men når jeg trykker "gem ændringer" for jeg følgende
> fejl:
>
> Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
> [Microsoft][ODBC Microsoft Access Driver] Field 'news.tag' cannot
> be a zero-length string.

Ja den siger jo at news.tag ikke må være en tom streng, så det er nok det der
er galt.


> her er selve linje 20:
> Conn.Execute(sql)

prøv at skrifte en ud med response.write(sql), så vil du se at "tag" er tomt.

>    SQL = "Update news set tag = '"& tag &"' where id = "& id

skulle dette ikke have været:

SQL = "Update news set tag = '"& Kommentar &"' where id = "& id

Og husk at bruge option explicit i starten af din kode, så undgår du den slags
problemer
Med venlig hilsen
Lars Hoffmann

Daniel Andersen (05-02-2005)
Kommentar
Fra : Daniel Andersen


Dato : 05-02-05 15:35

Det skal jo lige siges at jeg er total noob, så hvad er explicit ?? Nej, det skal
være tag, for det er en tagwall.. Jeg har bare kaldt databasen news, for da jeg
lavede tagwallen, kiggede jeg efter koderne i et news system
:D Prøver lige der der: response.write(sql)
thX, !

> Ja den siger jo at news.tag ikke må være en tom streng, så det er nok det >der
> er galt.
>
>
> > her er selve linje 20:
> > Conn.Execute(sql)
>
> prøv at skrifte en ud med response.write(sql), så vil du se at "tag" er tomt.
>
> >    SQL = "Update news set tag = '"& tag &"' where id = "& id
>
> skulle dette ikke have været:
>
> SQL = "Update news set tag = '"& Kommentar &"' where id = "& id
>
> Og husk at bruge option explicit i starten af din kode, så undgår du den slags
> problemer
> Med venlig hilsen
> Lars Hoffmann


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

Lars Hoffmann (05-02-2005)
Kommentar
Fra : Lars Hoffmann


Dato : 05-02-05 18:16

Daniel Andersen wrote:
> Det skal jo lige siges at jeg er total noob, så hvad er explicit ?

se her: http://www.asp-faq.dk/article/?id=9

> ? Nej, det skal
> være tag, for det er en tagwall.

Men den variabel hvori du henter værdien fra "tag" hedder kommentar, se selv
denne linie:

Kommentar = request.form("tag")

hvilket vil sige at det der var i formefeltet "tag" gemmes i variablen
Kommentar og derfor er det variablen Kommentar du skal have med ind i den SQL
sætning.

> :D Prøver lige der der: response.write(sql)

response.write(sql) udskriver din SQL streng således at du kan se hvor fejlen
ligger, det løser ikke problemet i sig selv.

Med venlig hilsen
Lars Hoffmann

Daniel Andersen (05-02-2005)
Kommentar
Fra : Daniel Andersen


Dato : 05-02-05 19:23

jamen, hvor udskriver den det hen til ?

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

Lars Hoffmann (05-02-2005)
Kommentar
Fra : Lars Hoffmann


Dato : 05-02-05 19:37

Daniel Andersen wrote:
> jamen, hvor udskriver den det hen til ?

Skærmen

Daniel Andersen (05-02-2005)
Kommentar
Fra : Daniel Andersen


Dato : 05-02-05 15:41

Når jeg har gjort det der Response.Write(sql), så kan jeg komme videre, men den
gemmer ikke det jeg har skrevet ?

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

Jens Gyldenkærne Cla~ (05-02-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 05-02-05 23:26

Daniel Andersen skrev:

> Når jeg har gjort det der Response.Write(sql), så kan jeg
> komme videre,

Jep - så kan du komme videre med fejlsøgningen. Send evt. det du
får ud på skærmen hertil.

> men den gemmer ikke det jeg har skrevet ?

Nej, response.write har ikke noget med din database at gøre - det
er en simpel kommando til at udskrive data til skærmen. Du skal
bruge de oplysninger du får på skærmen til at finde den fejl der
gør at sql-sætningen ikke kan køre.

NB: Læs gerne min signatur - det er svært at se hvem du svarer og
hvad du svarer på når du ikke citerer noget.
--
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 : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste