01. februar 2006 - 10:32Der 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?
Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
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 :)
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...
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.
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.
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).
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.