Avatar billede martinhh Nybegynder
09. februar 2002 - 14:04 Der er 14 kommentarer

Ufattelig SQL/ASP fejl!

Hejsa!

Jeg fatter bare ikke denne fejlmeddelse:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
/kp/Admin/opdater.asp, line 37

og, så er det jeg siger: Hvad hulen går galt i denne her kode:

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("../stykker1.mdb")
Conn.Open DSN
strSQL = "Insert into rs" & CLng(Request.Form("svaergrad")) & " ("

strSQL = strSQL & "navn, "
strSQL = strSQL & "losning, "
strSQL = strSQL & "stykke, "
strSQL = strSQL & "stykke1, "
strSQL = strSQL & "stykke2, "
strSQL = strSQL & "stykke3, "
strSQL = strSQL & "stykke4, "
strSQL = strSQL & "stykke5) "

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Request.Form("navn") & "', "
strSQL = strSQL & "'" & Request.Form("losning") & "', "
strSQL = strSQL & "'" & Request.Form("stykke") & "', "
strSQL = strSQL & "'" & Request.Form("stykke1") & "', "
strSQL = strSQL & "'" & Request.Form("stykke2") & "', "
strSQL = strSQL & "'" & Request.Form("stykke3") & "', "
strSQL = strSQL & "'" & Request.Form("stykke4") & "', "
strSQL = strSQL & "'" & Request.Form("stykke5") & "') "

Conn.Execute(strSQL)

Conn.Close
Set Conn = Nothing
%>

Jeg kan simpelthen ikke se det, og nu har jeg kigget i jeg ved ikke hvor lang tid! Det er sikkert meget let....

På forhånd tak!
Martin
Avatar billede rou Nybegynder
09. februar 2002 - 14:26 #1
Check din database, om alle dine felter er streng felter, og ikke numeriske.
Du bruger aprostroffer omkring alle dine værdier, så hvis bare eet af felterne forventer en numerisk værdi, vil du få den fejl.

- Rou
Avatar billede martinhh Nybegynder
09. februar 2002 - 14:45 #2
"navn" og "losning" er tekst, og hele "stykke"-rækken er tal, hvad gør jeg så fejl? streng felter? Hvad er det? :)
Avatar billede excession Nybegynder
09. februar 2002 - 14:54 #3
det er fordi du prøver at indsætte en talværdi ind i et felt i access databasen der forventer at få noget tekst..

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Request.Form("navn") & "', "
strSQL = strSQL & "'" & Request.Form("losning") & "', "
strSQL = strSQL & "" & Request.Form("stykke") & ", "
strSQL = strSQL & "" & Request.Form("stykke1") & ", "
strSQL = strSQL & "" & Request.Form("stykke2") & ", "
strSQL = strSQL & "" & Request.Form("stykke3") & ", "
strSQL = strSQL & "" & Request.Form("stykke4") & ", "
strSQL = strSQL & "" & Request.Form("stykke5") & ") "


-- xs
Avatar billede martinhh Nybegynder
09. februar 2002 - 15:35 #4
Jeg kigger på det...
Avatar billede a1a1 Novice
09. februar 2002 - 15:37 #5
fejlen kan også komme hvis der ikke er noget i stykke - stykke5
(det skal være et 0 hvis der ikke er noget)

prøv at skrive din sql streng ud og se hvad der står
Avatar billede martinhh Nybegynder
09. februar 2002 - 15:43 #6
xs>> Nix, jeg indtaster korrekt data, så det er ikke det der er problemet...
Avatar billede excession Nybegynder
09. februar 2002 - 19:56 #7
hedder din tabel rs?
Avatar billede martinhh Nybegynder
09. februar 2002 - 21:53 #8
xs>> Ja, men tabel hedder rs
Avatar billede martinhh Nybegynder
09. februar 2002 - 21:53 #9
men = min
Avatar billede excession Nybegynder
09. februar 2002 - 23:03 #10
hmm kan det være fordi tabellen hedder f.eks. rs4 i tekst og du prøver at indsætte i rs4 hvor 4 tallet er et tal? :

strSQL = "Insert into rs" & CLng(Request.Form("svaergrad")) & " ("

?

ellers så ved jeg ikke hvad det kan være
Avatar billede martinhh Nybegynder
10. februar 2002 - 10:55 #11
ex>> Request.Form("svaegrad") er et hidden felt... Jeg kan nemlig heller  ikke se den r*v irriterende fejl!
Avatar billede martinhh Nybegynder
10. februar 2002 - 10:56 #12
a1>> Det er desværre heller ikke det...
Avatar billede excession Nybegynder
10. februar 2002 - 15:24 #13
strSQL = strSQL & "'" & Request.Form("navn") & "', "
strSQL = strSQL & "'" & Request.Form("losning") & "', "
strSQL = strSQL & "" & Request.Form("stykke") & ", "
strSQL = strSQL & "" & Request.Form("stykke1") & ", "
strSQL = strSQL & "" & Request.Form("stykke2") & ", "
strSQL = strSQL & "" & Request.Form("stykke3") & ", "
strSQL = strSQL & "" & Request.Form("stykke4") & ", "
strSQL = strSQL & "" & Request.Form("stykke5") & " "
strSQL = strSQL & ");"


hvor er linie 37 i øvrigt?
Avatar billede martinhh Nybegynder
11. februar 2002 - 13:55 #14
ex>> Conn.Execute(strSQL)
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