Avatar billede tma Juniormester
01. februar 2006 - 10:32 Der er 8 kommentarer og
1 løsning

Hjælp til function i asp / Access

Hej
Jeg sidder og roder med noget til et intranet. Jeg har det meste liggende i en sql-db, men har været nød til at ligge noget i en Access-db. Det skyldes en situation hvor jeg har et lille biblioteksystem. En bog kan have flere forfattere. De står ikke på selve emnet, men som en en-til-mange tabel. Virker fint i Accesss, men hvis man ikke gør noget specielt får man bogen angive for hver gang der er en forfatter (2 forfattere = 2 poster i udtrækket). Det håndterer jeg i access ved at lave forespørgslen uden forfattertabellen og så sender jeg BogID til en function som returnerer forfatterne som en streng. Virker fint i access, MEN når jeg forsøger at trække forespørgslen via ASP, kommer en fejl med Ukendt funktion.
Hvad kan jeg gøre?
Avatar billede keysersoze Ekspert
01. februar 2006 - 10:45 #1
om du bruger access eller en sql-db (eller for den sags skyld en helt tredie type database) vil ingen forskel gøre på om det kan lade sig gøre eller ej - det hele afhænger af en korrekt opbygget SQL - så umiddelbart lyder det som enormt spild at blande en access ind i det.

jeg ved selvfølgelig ikke hvad du hiver ud i din SQL - men en mulighed kunne jo være at vælge distinct ud så en bog kom kommer ud én gang;

SELECT distinct titel FROM bog...

og en anden mulighed var at lave en subselect i din SQL;

SELECT * FROM bog WHERE id IN (SELECT bog_id FROM forfatter_join...

så jeg vil kun mene man "er nødt til" at bruge en access hvis ikke andre muligheder er til stede :)
Avatar billede softspot Forsker
01. februar 2006 - 13:45 #2
Du er vel nød til at lave den samme funktion i ASP som du har lavet i Access. Det er jo ikke databasen du laver funktionen i, men i Access-miljøet - og den fungerer efter min bedste overbevisning kun hvis du har programmet Access åben når ud laver dine forspørgsler...
Avatar billede tma Juniormester
04. februar 2006 - 20:19 #3
Tror måske at softspot er inde på noget. Jeg kan jo godt nøjes med at hente bøgerne (dvs. fra en enkelt tabel og og deraf ikke noget problem) og så hente forfatterinfo udfra BogID og ligge den enkelte streng på som et ekstra felt.
Avatar billede keysersoze Ekspert
27. marts 2006 - 11:43 #4
kommet videre?
Avatar billede tma Juniormester
27. marts 2006 - 12:42 #5
Projektet har lagt stille, men jeg tror softspots forslag kan gennemføres.
Avatar billede softspot Forsker
27. marts 2006 - 12:57 #6
Det skulle jeg mene :)

Spørgsmålet er hvad dine behov er, hvad der er mest optimalt og hensigtsmæssigt ifht. udvikling, udførsel af kode, samt vedligeholdelse efterfølgende.

Du har sikkert en grund til at du ikke kan lægge bibliotekssystemet ind i din sql-db (er det i øvrigt en ny forkortelse for MS SQL Server??), så det vil jeg ikke anfægte, men jeg vil da erklære mig enig med keysersoze i, at en velkonstrueret SQL-sætning ville være mere effektiv idet du vil spare gentagne opslag i databasen.
Avatar billede softspot Forsker
05. marts 2007 - 13:55 #7
Ville du give point for det foreslag eller hvordan?
Avatar billede tma Juniormester
05. marts 2007 - 14:43 #8
Min løsning er blevet, at efter at der er indtastet forfatternavne, laver jeg et gennemløb af alle bøger_forfatter og for hver bøg laver jeg et opslag i listen over forfattere. Derved bliver der opbygget en forfatter-streng for hver bog. Denne streng bliver noteret i et felt på  bog-posten (som kun kan opdateres på denne måde). På den måde kan jeg indtaste minimalt, og jeg kan læse optimalt (fra kun én tabel).
Avatar billede tma Juniormester
05. november 2010 - 10:42 #9
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
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