27. juni 2001 - 19:46
Der er
8 kommentarer og 1 løsning
SQL-statements fra MS Access forespørgsel -> ASP
Hvordan og hvorledes med sql-statements ifb. med ASP? Jeg har en Access DB, hvor jeg har følgende forespørgsels-DB: SELECT RABATKODE_KATEGORI_RAS_TBL.RABATKODE, RABATKODE_KATEGORI_RAS_TBL.KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE, RABATKODE_KATEGORI_RAS_TBL.RABAT_MARKERING, PRODUKT_RAS_TBL.PRODUKT, PRODUKT_RAS_TBL.PRODUKT_BETEGNELSE, PRODUKT_RAS_TBL.HENV_PRODUKT FROM (PRODUKT_RAS_TBL INNER JOIN (RABATKODE_KATEGORI_TOT_TBL INNER JOIN RABATKODE_KATEGORI_RAS_TBL ON RABATKODE_KATEGORI_TOT_TBL.RABATKODEKATEGORI = RABATKODE_KATEGORI_RAS_TBL.RABATKODEKATEGORI) ON PRODUKT_RAS_TBL.PRODUKT = RABATKODE_KATEGORI_RAS_TBL.RABATPRODUKT) INNER JOIN PRODUKT_RAS_TBL AS PRODUKT_RAS_TBL_1 ON PRODUKT_RAS_TBL.HENV_PRODUKT = PRODUKT_RAS_TBL_1.PRODUKT WHERE (((RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI)=\"J\") AND ((RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE)=\"J\")); (Jeg ved godt, at den ser uoverskuelig ud!) Den kører sføli fint i Access, meeeen..... er det overhovedet muligt at overføre/omsætte ovenstående til ASP-kode i strSQL?
Annonceindlæg fra Cognizant
ja... SQL = \"dit_fra_access\"
fx: Set Conn = Server.CreateObject(\"ADODB.Connection\") conn.Open \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & Server.MapPath(\"../bog.mdb\") SQL = \"SELECT RABATKODE_KATEGORI_RAS_TBL.RABATKODE, RABATKODE_KATEGORI_RAS_TBL.KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE, RABATKODE_KATEGORI_RAS_TBL.RABAT_MARKERING, PRODUKT_RAS_TBL.PRODUKT, PRODUKT_RAS_TBL.PRODUKT_BETEGNELSE, PRODUKT_RAS_TBL.HENV_PRODUKT FROM (PRODUKT_RAS_TBL INNER JOIN (RABATKODE_KATEGORI_TOT_TBL INNER JOIN RABATKODE_KATEGORI_RAS_TBL ON RABATKODE_KATEGORI_TOT_TBL.RABATKODEKATEGORI = RABATKODE_KATEGORI_RAS_TBL.RABATKODEKATEGORI) ON PRODUKT_RAS_TBL.PRODUKT = RABATKODE_KATEGORI_RAS_TBL.RABATPRODUKT) INNER JOIN PRODUKT_RAS_TBL AS PRODUKT_RAS_TBL_1 ON PRODUKT_RAS_TBL.HENV_PRODUKT = PRODUKT_RAS_TBL_1.PRODUKT WHERE (((RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI)=\"J\") AND ((RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE)=\"J\"));\" Set rs = Conn.Execute(SQL)
Nope, får fejlen: Fejltype: Der opstod en Microsoft VBScript-kompileringsfejl (0x800A0401) Slut på sætning var ventet /trafik.asp, line 14, column 736 SQL = \"SELECT RABATKODE_KATEGORI_RAS_TBL.RABATKODE, RABATKODE_KATEGORI_RAS_TBL.KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE, RABATKODE_KATEGORI_RAS_TBL.RABAT_MARKERING, PRODUKT_RAS_TBL.PRODUKT, PRODUKT_RAS_TBL.PRODUKT_BETEGNELSE, PRODUKT_RAS_TBL.HENV_PRODUKT FROM (PRODUKT_RAS_TBL INNER JOIN (RABATKODE_KATEGORI_TOT_TBL INNER JOIN RABATKODE_KATEGORI_RAS_TBL ON RABATKODE_KATEGORI_TOT_TBL.RABATKODEKATEGORI = RABATKODE_KATEGORI_RAS_TBL.RABATKODEKATEGORI) ON PRODUKT_RAS_TBL.PRODUKT = RABATKODE_KATEGORI_RAS_TBL.RABATPRODUKT) INNER JOIN PRODUKT_RAS_TBL AS PRODUKT_RAS_TBL_1 ON PRODUKT_RAS_TBL.HENV_PRODUKT = PRODUKT_RAS_TBL_1.PRODUKT WHERE (((RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI)=\"J\") AND ((RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE)=\"J\"));\"
Når følgende er tabeller: RABATKODE_KATEGORI_RAS_TBL RABATKODE_KATEGORI_TOT_TBL PRODUKT_RAS_TBL Kan jeg så overhovedet select\'e et felt (på denne måde) ved f.eks at angive RABATKODE_KATEGORI_RAS_TBL.RABATKODE -Hvor RABATKODE er feltet??? (If you catch my drift)
Du kan sagtens selecte feltet på den måde.
OK, men som sagt virker det ikke! Nogle, der har en idé om, hvad der kan være galt med ovenstående?
Prøv det her, jeg tror det går galt med dine \": SQL = \"SELECT RABATKODE_KATEGORI_RAS_TBL.RABATKODE, RABATKODE_KATEGORI_RAS_TBL.KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE, RABATKODE_KATEGORI_RAS_TBL.RABAT_MARKERING, PRODUKT_RAS_TBL.PRODUKT, PRODUKT_RAS_TBL.PRODUKT_BETEGNELSE, PRODUKT_RAS_TBL.HENV_PRODUKT FROM (PRODUKT_RAS_TBL INNER JOIN (RABATKODE_KATEGORI_TOT_TBL INNER JOIN RABATKODE_KATEGORI_RAS_TBL ON RABATKODE_KATEGORI_TOT_TBL.RABATKODEKATEGORI = RABATKODE_KATEGORI_RAS_TBL.RABATKODEKATEGORI) ON PRODUKT_RAS_TBL.PRODUKT = RABATKODE_KATEGORI_RAS_TBL.RABATPRODUKT) INNER JOIN PRODUKT_RAS_TBL AS PRODUKT_RAS_TBL_1 ON PRODUKT_RAS_TBL.HENV_PRODUKT = PRODUKT_RAS_TBL_1.PRODUKT WHERE (((RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI)=\'J\') AND ((RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE)=\'J\'));\"
Hvad med dette: Test det! Set Conn = Server.CreateObject(\"ADODB.Connection\") conn.Open \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & Server.MapPath(\"../bog.mdb\") SQL = \"SELECT RABATKODE_KATEGORI_RAS_TBL.RABATKODE, RABATKODE_KATEGORI_RAS_TBL.KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI, RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE, RABATKODE_KATEGORI_RAS_TBL.RABAT_MARKERING, PRODUKT_RAS_TBL.PRODUKT, PRODUKT_RAS_TBL.PRODUKT_BETEGNELSE, PRODUKT_RAS_TBL.HENV_PRODUKT FROM (PRODUKT_RAS_TBL INNER JOIN (RABATKODE_KATEGORI_TOT_TBL INNER JOIN RABATKODE_KATEGORI_RAS_TBL ON RABATKODE_KATEGORI_TOT_TBL.RABATKODEKATEGORI = RABATKODE_KATEGORI_RAS_TBL.RABATKODEKATEGORI) ON PRODUKT_RAS_TBL.PRODUKT = RABATKODE_KATEGORI_RAS_TBL.RABATPRODUKT) INNER JOIN PRODUKT_RAS_TBL AS PRODUKT_RAS_TBL_1 ON PRODUKT_RAS_TBL.HENV_PRODUKT = PRODUKT_RAS_TBL_1.PRODUKT WHERE (((RABATKODE_KATEGORI_TOT_TBL.AKTIV_KATEGORI)=\'J\') AND ((RABATKODE_KATEGORI_TOT_TBL.AKTIV_RABATKODE)=\'J\'));\" Set rs = Conn.Execute(SQL)
Fik ikke noget af det ovennævnte til at køre. Lavede i stedet en forespørgsel i Access og kaldte denne i stedet (på den måde undgik jeg at lave joins i ASP-koden).
Kurser inden for grundlæggende programmering