Avatar billede mccannon Nybegynder
03. oktober 2002 - 16:42 Der er 11 kommentarer og
1 løsning

En til mange relation & SQL

Hejsa
jeg har et lille problem, og det er som følger..:

Jeg har en tabel i en database(ikke selv sat den op) med et felt som har en til mange relation, jeg har så en SQL sætning som ser sådan ud .:
SQL = "SELECT * FROM vare WHERE kategori = " & kategori
SQL = SQL & " AND type = '" & Model & "'"

Men den finder ikke noget ..selv om den skulle ..hvad er problemet ???
skal lige siges mit kendskab til relationer i en database er på et kendskab der nærmer sig 0

MVH
Cannon
Avatar billede jakoba Nybegynder
03. oktober 2002 - 16:45 #1
prøv at udskrive strengen SQL og se om den indeholder det du tror.
Avatar billede mccannon Nybegynder
03. oktober 2002 - 16:51 #2
har lige lavet type om til model da type er et reserveret ord i access...
så nu ser SQL'en sådan ud .:

SQL = "SELECT * FROM vare WHERE kategori = " & kategori
SQL = SQL & " AND Model = '" & Model & "'"

SQL'en når man skriver den ud .:
SELECT * FROM vare WHERE kategori = 7 AND Model = 'E30'
Avatar billede mccannon Nybegynder
03. oktober 2002 - 17:01 #3
hmm fandt lige ud af at den en til mange dims hed modelnr
så nu er der en ny fejlmeddelse
SELECT * FROM vare WHERE kategori = 7 AND Modelnr = 'E30'

Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
Avatar billede jakoba Nybegynder
03. oktober 2002 - 17:43 #4
så er det vist ikke din query den er gal med, men dit kald til access.
har du angivet connection der hvor du kalder noget i retning af

resultatsæt = sql_query( connection, SQL )

mvh JakobA
Avatar billede mccannon Nybegynder
03. oktober 2002 - 18:17 #5
Du havde ret, det var noget med connection der var galt, nå. men nu er der en ny fejlmeddelse
sådan ser conn og RS ud..

DBSource = server.mappath("../../scripts/produkter.mdb")
set Conn = Server.createobject("ADODB.Connection")
Conn.open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & DBSource
Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM vare WHERE kategori = " & kategori
SQL = SQL & " AND Modelnr = '" & Model & "'"
RS.open SQL,Conn

fejl .:

Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

line 15
Avatar billede terry Ekspert
03. oktober 2002 - 18:39 #6
make sure that kategori IS a numeric field in the dB
Avatar billede mccannon Nybegynder
03. oktober 2002 - 18:43 #7
It is terry, and it works as soon as im not using the second clause
.:
SQL = SQL & " AND Modelnr = '" & Model & "'"
Avatar billede jakoba Nybegynder
03. oktober 2002 - 18:49 #8
DBSource = server.mappath("../../scripts/produkter.mdb")
set Conn = Server.createobject("ADODB.Connection")
Conn.open "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & DBSource
Set RS = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM vare WHERE kategori = " & kategori
SQL = SQL & " AND Modelnr = '" & Model & "'"
Set Resultat = Conn.Execute( SQL )

nu skulle variablen  Resultat  indeholde de data der blev fundet i databasen
du løber igennem dem med:

WHILE NOT Respons.EOF
  Response.write( "felt fra raekken " &Resultat("feltnavn") )
  RS.MoveNext
WEND

(eller noget i den retning. jeg kender ikke meget til ASP

mvh JakobA
Avatar billede jakoba Nybegynder
03. oktober 2002 - 18:51 #9
Ups. variablen Resultat skal vist være RS (der blev oprettet til det samme)
Avatar billede mccannon Nybegynder
03. oktober 2002 - 18:59 #10
takker for svaret men det er altså ikke et problem at få skrevet ud, problemet er at den ikke finde noget i databasen der opfylder de 2 klasuler, hvilket den skulle gøre med kategori = 7 og kategori = E30

umm den må de du åbner på er anderledes end den måde jeg åbner, men resultatet bliver det samme...
Avatar billede mccannon Nybegynder
03. oktober 2002 - 20:20 #11
fandt en anden løsning
Avatar billede mccannon Nybegynder
03. oktober 2002 - 20:20 #12
lukket
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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