Avatar billede websam Nybegynder
02. juli 2002 - 00:08 Der er 21 kommentarer og
1 løsning

Fejl ???

Jeg har sq stirret mig blind hvad betyder dette :

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.

/WebSam
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:12 #1
Du prøver nok enten at ligge tal ind i et tekst felt eller omvendt..

Hvis du bruger SQL skal tekst ind i ' og tal skal ikke.....
"INSER INTO tabel (talkol,textkol) VALUES (234, 'tekst herinde')"
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:15 #2
Prøv evt at vis din SQL-sætning..
Prøv at udskrive din SQL-sætninge efter du lavet den og før du bruger den, det kan tit give svaret på hvor den er gal.
Avatar billede websam Nybegynder
02. juli 2002 - 00:18 #3
Sql ser således ud :

Sql = "INSERT INTO WebSites (MerchantId, Sitename, Index, Content, Tprice, 1price, 3price, 6price, 12price, Tdays, TRebill, 1Rebill) Values ("
Sql = Sql & "" & Request.Form("MerchantId") & ", "
Sql = Sql & "'" & Request.Form("Sitename") & "', "
Sql = Sql & "'" & Request.Form("Index") & "', "
Sql = Sql & "'" & Request.Form("Content") & "', "
Sql = Sql & "" & Request.Form("Tprice") & ", "
Sql = Sql & "" & Request.Form("1price") & ", "
Sql = Sql & "" & Request.Form("3price") & ", "
Sql = Sql & "" & Request.Form("6price") & ", "
Sql = Sql & "" & Request.Form("12price") & ", "
Sql = Sql & "" & Request.Form("Tdays") & ", "
Sql = Sql & "'" & Request.Form("TCheck") & "', "
Sql = Sql & "'" & Request.Form("1Check") & "')"
Conn.Execute(Sql)
Conn.Close

hvor tprice, 1price, 3price., 6price, 12price, Tdays og merchantid er
tal felter burde det så ikke virke ???

/Websam
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:19 #4
Det skal lige nævnes hvis du har kolonner med datatype dato, så skal man i Access SQL bruge # omkring som ...
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:21 #5
Jo det ser godt ud..
Er MerchantId autonummer i databasne?

SQL er ikke så glad for kolonner som starter med et tal, så du skal nok prøve at sætte [] omrking:
Sql = "INSERT INTO WebSites (MerchantId, Sitename, Index, Content, Tprice, [1price], [3price], [6price], [12price], Tdays, TRebill, [1Rebill]) Values ("
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:23 #6
index er også reserveret ord i Access SQL, så der skal også [] omkring:

Sql = "INSERT INTO WebSites (MerchantId, Sitename, [Index], Content, Tprice, [1price], [3price], [6price], [12price], Tdays, TRebill, [1Rebill]) Values ("
Avatar billede websam Nybegynder
02. juli 2002 - 00:25 #7
Nope det kan det jo heller ikke være når det er et nummer jeg indsætter
og jeg prøver lige det du skrev !

/WebSam
Avatar billede websam Nybegynder
02. juli 2002 - 00:27 #8
Hmmmm......det virker heller ikke !

/WebSam
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:30 #9
Har du prøvet at udskrive SQL-sætningen? lige efter du har lavet den:
response.write Sql
Avatar billede websam Nybegynder
02. juli 2002 - 00:38 #10
Øhhhh hvor skal det stå ???
Avatar billede psyclown Nybegynder
02. juli 2002 - 00:39 #11
lige før Conn.Execute(Sql)
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:40 #12
Prøv at sætte den ind lige før:

Conn.Execute(Sql)

og så ud kommenter Conn.Execute(Sql) så den ikke giver fejl på siden så skulle du ger se hvordan SQL-sætningen ser ud.
Avatar billede websam Nybegynder
02. juli 2002 - 00:42 #13
Det skr der heller ikke meget ved andet end at jeg får fejlen i linie 18 istedet for linie 17 !?!

/WebSam
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:43 #14
hvilken fejl?
Avatar billede websam Nybegynder
02. juli 2002 - 00:45 #15
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket.
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:46 #16
du skulle også udkommentere linine Conn.Execute(Sql) sådan her:

Response.write sql
'Conn.Execute(Sql)
Avatar billede websam Nybegynder
02. juli 2002 - 00:51 #17
oki så får jeg denne :

Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:52 #18
Det kunne tyde på der er en som er tom eksvis et hvis du ikke angiver et tal. Så står der to kommaer efter hinanden i VALUES  , ,  ??
Avatar billede eagleeye Praktikant
02. juli 2002 - 00:58 #19
Jeg er nød til at smutte iseng nu..

Hvis der manger et tal så må du tjekke alle dine tal variable inden du ligger dem i databasen:

if Request.Form("12price") = "" then tal_12price = 0

osv..


Så må du lave SQL'en om sådan her:
Sql = Sql & "" & tal_12price & ", "
osv..

Ligeledes er det en god ide for tekst felter at lave en ' om til to '' da en ' tolken som start og slut på en streng i SQL, hvorimod 2 tolkes som en rigtig ':

Sql = Sql & "'" & Replace(Request.Form("Content"),"'","''") & "', "
Avatar billede websam Nybegynder
02. juli 2002 - 01:01 #20
jeg har 2 tjek felter i formularen kan det være derfor hvis nu den ene ikke er vinket af ???
Avatar billede eagleeye Praktikant
02. juli 2002 - 08:28 #21
Ja det kan godt være et problem for man får values fra en checkbox og ikke om den er afkrydset eller ej. Hvis det er en check-box?

Så skal du lave som:
<input type="checkbox" name="navn" value="noget">

og på siden som gemmer i databasen:
<%
if request.form("navn") <> "" then
  'kryds i check-boxen
  check_navn = 1
else
  check_navn = 0
end if

og så i SQL-sætningen:
Sql = Sql & "" & check_navn & ", "
Avatar billede websam Nybegynder
02. juli 2002 - 09:20 #22
Kanon tak for hjælpen !!!
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