Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:12 Der er 17 kommentarer og
1 løsning

Type mismatch men hvorfor lige det?

adoCn.Execute("INSERT INTO Maillist (id,email,bruger) VALUES (" & id &",'" & request.form("oprettersmail") &"','" & session("brugernavn") & "')")
       

det er id der fejler, men kolonnen er altså et tal felt.
hvad kan være problemet?
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:15 #1
id bliver oprettet her

Set hentSidste = Server.CreateObject("ADODB.Connection")
hentSidste.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("db.mdb")
       
Dim id
nummerer="SELECT MAX(id) FROM trade"
SET id = hentSidste.Execute(nummerer)
Avatar billede softspot Forsker
01. marts 2006 - 17:17 #2
Typisk er det fordi der ikke er noget indhold i variablen og SQL-sætningen derfor bliver ugyldig (idet talfelter SKAL have en numerisk værdi eller NULL, hvis din database tillader det).

Prøv at udskrive SQL-sætningen i stedet for at udføre den...

response.write "INSERT INTO Maillist (id,email,bruger) VALUES (" & id &",'" & request.form("oprettersmail") &"','" & session("brugernavn") & "')"
response.end
Avatar billede softspot Forsker
01. marts 2006 - 17:19 #3
Prøv lige at udføre din SQL således (jeg går ud fra at hentSidste er din connection):

Dim id
nummerer="SELECT MAX(id) FROM trade"
SET id = hentSidste.Execute(nummerer)

adoCn.Execute("INSERT INTO Maillist (id,email,bruger) VALUES (" & id(0) &",'" & request.form("oprettersmail") &"','" & session("brugernavn") & "')")
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:23 #4
Du har ret, men hvorfor er id tom?
hentSidste er min connection ja og det sidste eksempel virkede desværre ikke
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:26 #5
Trade er ikke tom så den burde kunne finde max id?
Avatar billede softspot Forsker
01. marts 2006 - 17:27 #6
Jeg kommer lige til at se at du bruger to forskellige variabler til at forbinde til din database, dels hentSidste, dels adoCn - er det tiltænkt. Umiddelbart ville jeg have forventet noget á la:

Dim id
nummerer="SELECT MAX(id) FROM trade"
SET id = hentSidste.Execute(nummerer)

hentSidste.Execute("INSERT INTO Maillist (id,email,bruger) VALUES (" & id(0) &",'" & request.form("oprettersmail") &"','" & session("brugernavn") & "')")
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:30 #7
Det er bevist der er 2 forbindelser

Dit sidste forslag gav denne fejl

Object required: ''
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:31 #8
vent må nok hellere lige rette alt tilbage til som da vi startede og teste det sidste forslag igen:)
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:36 #9
Den kommer desværre med denne fejl, men ID id også tom hvilket den ikke skal være

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
Avatar billede softspot Forsker
01. marts 2006 - 17:37 #10
OK, skulle bare lige være sikker på at det ikke var en fejl med de to connections :)

Hmm... det er ret mystisk det med id der er tomt. Vi er enige om at id burde være et recordset, ikke sandt? Og det recordset burde have en række hvor der er en (unavngiven) kolonne, som indeholder det højeste id der findes i tabellen trade...?

Hvis du nu udfører denne kode, hvad siger browseren så:

Dim id, nummerer, sql
sql = "SELECT MAX(id) AS MAXID FROM trade"
set id = hentSidste.Execute(sql)
if not id.eof then
  sql = "INSERT INTO Maillist (id,email,bruger) " & _
      "VALUES (" & _
      id("MAXID") & "," & _
      "'" & request.form("oprettersmail") &"'," & _
      "'" & session("brugernavn") & "')"
  adoCn.Execute(sql)
else
  response.write "Der var ikke nogen id'er i tabellen trade."
end if
id.close
Avatar billede softspot Forsker
01. marts 2006 - 17:39 #11
Ang. 01/03-2006 17:36:17 >> hvilken af de to sætninger kom den fejl i? Er det HEEEELT sikkert at id-kolonnen hedder id og ikke f.eks. tradeid eller sådan noget?
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:42 #12
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

desværre..

hvis du ser bort fra min kode og laver fra bunden af en database forbindelse og en sql sætning der henter det største id i tabellen trade og gemmer det i en variabel hvordan ville du så gøre det?

Har nemlig måske blandet mine connections sammen
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:42 #13
den hedder helt sikkert id:) ! det er en meget simpel database!
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:43 #14
Her er indholdet af den

id
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:45 #15
Vent igen:) tror et af dine eksempler virkede, men det var et andet sted den fejlede!

undersøger det lige og så vender jeg tilbage
Avatar billede fastpoint Nybegynder
01. marts 2006 - 17:59 #16
lig et svar!

tror det virker nu:)
Avatar billede softspot Forsker
01. marts 2006 - 18:02 #17
Jamen, det får du her så :)
Avatar billede softspot Forsker
01. marts 2006 - 18:09 #18
Tak for point :)
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