Avatar billede agg-zeus Nybegynder
13. december 2001 - 19:40 Der er 11 kommentarer og
1 løsning

Sql - sætning!

Jeg har lavet denne sql-sætning til opdatering af min database:

<% Option Explicit %>

<%
    Dim cn, cnstr, sti
   
sti = server.mappath(\"dbnu.mdb\")
set cn = server.createobject(\"adodb.connection\")
cnstr = \"Provider=Microsoft.Jet.OLEDB.4.0;\"
cnstr = cnstr & \"Data Source=\" & sti & \";\"
cn.connectionstring = cnstr
cn.open

Dim sql
sql = \"update news set dato=\'\" & request.form(\"dato\") & \"\', overskrift=\'\" & request.form(\"overskrift\") & \"\', nyhed=\'\" & request.form(\"nyhed\") & \"\' where newsid=\'\" & request.form(\"newsid\") & \"\' \"
cn.execute sql
Response.Redirect(\"editnews.asp?edit=gennemfoert\")
cn.close
set cn = nothing


%>

Men når jeg loader siden, så får jeg følgende fejl:

Fejltype:
Microsoft JET Database Engine (0x80040E07)
Datatyperne stemmer ikke overens i kriterieudtrykket.
/mdisko/editnewsudfoer.asp, line 15

Hvad har jeg gjort galt?!
Avatar billede php_teddy Nybegynder
13. december 2001 - 19:43 #1
sql = \"update news set dato=\'\" & request.form(\"dato\") & \"\', overskrift=\'\" & request.form(\"overskrift\") & \"\', nyhed=\'\" & request.form(\"nyhed\") & \"\' where newsid=\'\" & request.form(\"newsid\") & \"\' \"

du har glemt where noget = noget

ellers hedder det insert into
Avatar billede php_teddy Nybegynder
13. december 2001 - 19:44 #2
ups min fejl .... hvad er din overskrift i DB\'en... sæt den til af være tinytext
Avatar billede nute Nybegynder
13. december 2001 - 19:44 #3
hvilke datatyper er dine kolonner ?

det skal \'\' rundt verdien til en tekstkolonne
det skal *ikke* \'\' rundt verdien til en tallkolonne
det skal ## rundt verdien til en datokolonne

/nute

Avatar billede agg-zeus Nybegynder
13. december 2001 - 19:45 #4
nej jeg har ikke glemt where noget = noget...

Den er der :
where newsid=\'\" & request.form(\"newsid\") & \"\'
Avatar billede php_teddy Nybegynder
13. december 2001 - 19:47 #5
sæt den til timestamp.... det skulle hjælpe
Avatar billede nute Nybegynder
13. december 2001 - 19:49 #6
php_teddy >> du refererer til \"den\"...hvilken kolonne er \"den\" og hvordan kan du være sikker på at \"den\" er den kolonnen som skaper problemer ???
Avatar billede agg-zeus Nybegynder
13. december 2001 - 19:56 #7
Jeg forstår det ikke helt!!! Min dato-kolonne er af datatypen \"Dato og klokkeslæt\" ...
Jeg kan sq ikke finde ud af de skide UPDATE sætninger!!!
Avatar billede php_teddy Nybegynder
13. december 2001 - 19:58 #8
hvis du laver den om til timestamp opdater den selv når du opdater de andre col. i den row
Avatar billede nute Nybegynder
13. december 2001 - 20:00 #9
tja...hvis du hadde lest mitt første innlegg så kunne du kanskje regne ut at din SQL skal se sånn ut:

sql = \"update news set dato=#\" & request.form(\"dato\") & \"#, overskrift=\'\" & request.form(\"overskrift\") & \"\', nyhed=\'\" & request.form(\"nyhed\") & \"\' where newsid=\'\" & request.form(\"newsid\") & \"\' \"

jeg regner også med at din \'newsid\' kolonne er av type \'number\'/\'tall\', så derfor skal din SQL se sånn ut:

sql = \"update news set dato=#\" & request.form(\"dato\") & \"#, overskrift=\'\" & request.form(\"overskrift\") & \"\', nyhed=\'\" & request.form(\"nyhed\") & \"\' where newsid=\" & request.form(\"newsid\")

/nute



Avatar billede agg-zeus Nybegynder
13. december 2001 - 20:02 #10
Nåå, okay... Jeg havde læst dit første indlæg, men jeg forstod ikke hvor jeg skulle skrive # og \'....
Avatar billede agg-zeus Nybegynder
13. december 2001 - 20:05 #11
Nu virker det!!! Jeg takker msnge gange for hjælpen. Pointne går til dig nute.
Avatar billede nute Nybegynder
13. december 2001 - 20:07 #12
fino :)
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