Avatar billede guzzie Nybegynder
27. februar 2001 - 16:35 Der er 29 kommentarer og
1 løsning

Check Box Again Again Part 2

Hey There

I have an asp page that updates an insert in my database
however I am getting this error
Microsoft OLE DB Provider for ODBC Drivers error \'80040e07\'

[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.

/mediascope/admin/edit_save_news.asp, line 22


my script looks like this

<%

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"../media.mdb\")


SQLstmp = \"UPDATE DISTINCTROW news SET dato = #\" & Now & \"#, news_name = \'\" & request.form(\"news_name\") & \"\', news = \'\" & request.form(\"news\") & \"\', authour = \'\" & request.form(\"authour\") & \"\', email = \'\" & request.form(\"email\") & \"\', publish = \'\" & request.form(\"publish\") & \"\' WHERE Id = \" & Request(\"Id\")
Conn.Execute (SQLstmp)



conn.Close
Set conn = nothing
Set SQLstmp = nothing

response.redirect (\"main_news.asp\")
%>

line 22 is this
Conn.Execute (SQLstmp)

however the last insert in the SQLstmp
is a colume called publish and it is a check box, the script works fine if I dont have publish

should publish have some sort of
\"if blah blah then blah blah\"
statement ??

Guzzie
Avatar billede guzzie Nybegynder
27. februar 2001 - 16:37 #1
BTW
publish is set as True/False

Guzzie
Avatar billede a-torsten Nybegynder
27. februar 2001 - 16:39 #2
Tra to make all your fields ind your database to as \"note\"

-Anders
Avatar billede a-torsten Nybegynder
27. februar 2001 - 16:42 #3
Try even...
Avatar billede guzzie Nybegynder
27. februar 2001 - 16:46 #4
my database fields are set to note and text
however this cant be the problem as I have used this DB for a while now but only untill today when I inserted the True/False checkbox
have I recieved an error

Guzzie
Avatar billede nute Nybegynder
27. februar 2001 - 17:08 #5
Guzzie > You have to filter your \'publish\' variable. the value will be \'on\' when you request it...so I suggest:

if( request.form(\"publish\") = \"on\" ) then
  publish = \"Yes\"
else
  publis = \"No\"
end if

and then you use the variable \'publish\' in the sql

/nute
Avatar billede guzzie Nybegynder
27. februar 2001 - 17:17 #6
hey there nute :))

I am still getting the samn error
in this line
Conn.Execute (SQLstmp)

here the DB connection as it stands now :)

<%

if( request.form(\"publish\") = \"on\" ) then
  publish = \"Yes\"
else
  publis = \"No\"
end if

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"../media.mdb\")


SQLstmp = \"UPDATE DISTINCTROW news SET dato = #\" & Now & \"#, news_name = \'\" & request.form(\"news_name\") & \"\', news = \'\" & request.form(\"news\") & \"\', authour = \'\" & request.form(\"authour\") & \"\', email = \'\" & request.form(\"email\") & \"\', publish = \'\" & request.form(\"publish\") & \"\' WHERE Id = \" & Request(\"Id\")
Conn.Execute (SQLstmp)



conn.Close
Set conn = nothing
Set SQLstmp = nothing

response.redirect (\"main_news.asp\")
%>

Guzzie
Avatar billede nute Nybegynder
27. februar 2001 - 17:20 #7
try this

SQLstmp = \"UPDATE DISTINCTROW news SET dato = #\" & Now & \"#, news_name = \'\" & request.form(\"news_name\") & \"\', news = \'\" & request.form(\"news\") & \"\', authour = \'\" & request.form(\"authour\") & \"\', email = \'\" & request.form(\"email\") & \"\', publish = \'\" & publish & \"\' WHERE Id = \" & Request(\"Id\")
Conn.Execute (SQLstmp)

/nute
Avatar billede guzzie Nybegynder
27. februar 2001 - 17:38 #8
Sorry nute
it didnt work ;(
btw
shouln´t
if( request.form(\"publish\") = \"on\" ) then
  publish = \"Yes\"
else
  publish = \"No\"
end if
be True / Flase ??
dunno myself just thinking out loud :)
Guzzie
Avatar billede nute Nybegynder
27. februar 2001 - 17:41 #9
yes it should....:)

/nute
Avatar billede guzzie Nybegynder
27. februar 2001 - 17:49 #10
nope still nothing
still the same error
Data type mismatch in criteria expression.

sniff :(
Guzzie
Avatar billede nute Nybegynder
27. februar 2001 - 17:51 #11
leave out the \'\' around --> \" & publish & \" <-- inside your sql
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:02 #12
hmm strange Damn :(
same error :(
Avatar billede nute Nybegynder
27. februar 2001 - 18:03 #13
do a response.write on your sql and send it to me....
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:04 #14
I was thinking
should we not still be requesting publish ??
Avatar billede nute Nybegynder
27. februar 2001 - 18:06 #15
you should keep your code as tou posted it in you posting at 27/02 2001 17:17:57, but replase your SQLstmt with the one I posted at 27/02 2001 17:20:39...

/nute
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:07 #16
response write ??
I dont quite follow
a response write  after

conn.Close
Set conn = nothing
Set SQLstmp = nothing

response.write \"lkfjdlkj\"

or in the SQL
if you mean in the SQL then Im not quite sure how :(
Guzzie
Avatar billede nute Nybegynder
27. februar 2001 - 18:10 #17
like this:

<%

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"../media.mdb\")


SQLstmp = \"UPDATE DISTINCTROW news SET dato = #\" & Now & \"#, news_name = \'\" & request.form(\"news_name\") & \"\', news = \'\" & request.form(\"news\") & \"\', authour = \'\" & request.form(\"authour\") & \"\', email = \'\" & request.form(\"email\") & \"\', publish = \" & publish & \" WHERE Id = \" & Request(\"Id\")

response.write SQLstmt

/nute
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:11 #18
k tried it but to no avail
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:12 #19
SQLstmt  ??
SQLstmp ??
:)
Avatar billede nute Nybegynder
27. februar 2001 - 18:12 #20
uups...sorry....

response.write SQLstmp

Avatar billede guzzie Nybegynder
27. februar 2001 - 18:15 #21
k here the current db connection

<%

Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"../media.mdb\")


SQLstmp = \"UPDATE DISTINCTROW news SET dato = #\" & Now & \"#, news_name = \'\" & request.form(\"news_name\") & \"\', news = \'\" & request.form(\"news\") & \"\', authour = \'\" & request.form(\"authour\") & \"\', email = \'\" & request.form(\"email\") & \"\', publish = \" & publish & \" WHERE Id = \" & Request(\"Id\")

response.write SQLstmt

Conn.Execute (SQLstmp)




conn.Close
Set conn = nothing
Set SQLstmp = nothing

response.redirect (\"main_news.asp\")
%>


And heres the error i get

Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in UPDATE statement.

/mediascope/admin/edit_save_news.asp, line 27


Guzzie
Avatar billede nute Nybegynder
27. februar 2001 - 18:18 #22
yes, I understand...but *how* does your sql look like after you insert the values into it... try leave out Conn.execute(SQLstmp) and just print out your SQLstmp !! ( and post it...)
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:19 #23
HEY NUTE found out wot was happening

heres the final edition and it works :)

<%

if( request.form(\"publish\") = \"True\" ) then
  publish = \"True\"
else
  publish = \"False\"
end if


Set Conn = Server.CreateObject(\"ADODB.Connection\")
Conn.Open \"DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\" & server.MapPath(\"../media.mdb\")


SQLstmp = \"UPDATE DISTINCTROW news SET dato = #\" & Now & \"#, news_name = \'\" & request.form(\"news_name\") & \"\', news = \'\" & request.form(\"news\") & \"\', authour = \'\" & request.form(\"authour\") & \"\', email = \'\" & request.form(\"email\") & \"\', publish = \" & publish & \" WHERE Id = \" & Request(\"Id\")

response.write SQLstmt

Conn.Execute (SQLstmp)




conn.Close
Set conn = nothing
Set SQLstmp = nothing

response.redirect (\"main_news.asp\")
%>

:)))))
Guzzie
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:20 #24
kewl nice team work :))
heres your points and once again ;)
thanks for the help

Guzzie
Avatar billede nute Nybegynder
27. februar 2001 - 18:21 #25
anytime, Guzzie ;) thanx to you to...
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:24 #26
k
response.write SQLstmt
is also not nessacery
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:24 #27
response.write SQLstmp

I mean :) hihi
Guzzie
Avatar billede nute Nybegynder
27. februar 2001 - 18:26 #28
nope....thats just for debug....it\'s easier to see if there\'s something wrong in the sql-statement when you see the whole thing, cause looking at it in your code can be pretty confusing...specially when working with larger sql-statements...

/nute
Avatar billede guzzie Nybegynder
27. februar 2001 - 18:58 #29
now Im with
Am I right in saying that
response.write SQLstmp
gives you a kind of more detailed error description ??
Avatar billede nute Nybegynder
27. februar 2001 - 20:04 #30
in a way...yes... you will get an output of the complete sql-statement... you will then be more able to see if you are missing something or have something in excess (e.g. a \' ). you will be able to debug your actions better when you give some kind of outputs on your actions...

/nute
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