17. november 2003 - 15:35Der er
12 kommentarer og 1 løsning
sql kald i sql database fra access
Jeg har en asp side hvorfra jeg henter et recordset i access. Jeg løber recordsettet igennem, og laver et opslag i en SQL database for at bestemme om recorden skal visese eller ej. Altså er det status i SQLDB der afgør sagen.
Da jeg for det meste skal igennem 500 records for blot at generere 20 poster (Jeg vil gerne have vist 20 records per side, jeg har noget paging kode knyttet til!), ja så performer det laaangsomt. 1-2minutter eksempelvis. Kan det ikke gøres hurtigere? Jeg har hørt at man evt. kan bruge addlinkserver. Er det en god ide?, og hvordan bruges det? Eller er der en anden løsning? Jeg forestiller mig at access måske hurtigere kan lave en query opslag i SQLDB, og jeg således kan få filtreret data den vej.
Jeg har overvejet at lave opslaget første gang asp-siden kaldes, men da brugeren typisk vil logge ud igen efter et enkelt kig, ja så vil der ikke vaære meget sparet.
Link dine SQL tabeller til din access, og sammensæt en query i Access som returnerer de record du vil have på din webside. Altså flyt intelligensen fra ASP-siden ned i Access. Du spørger så på Access querien fra din ASP side.
Fint nok Jobba, det er vidst også det jeg i det mindste forsøger at sige, selv tror er løsningen. de 100 point gives for noget konkret, som f.eks. noget kode/beskrivelse om hvordan man linker tabellerne, og evt laver kaldet fra asp, hvis det da ikke er et almindelig kald, som jeg umærket kender.
Hvordan linkes der?.... så skal du nok få del i gildet:-)
I første omgang tak for at jeg er blevet mere sikker på at det er den vej jeg skal gå. Ved du om det så også er hurtigere (nævneværdigt)?
Fair nok :-) Hastighedsmæssigt vil det nok være bedst at lade SQL-serveren lave alle beregninger. Men hvordan du får data fra Access ind i SQL har jeg ingen ide om.
-For at linke SQL tabellerne ind i Access, højreklikker du i vinduet med tabellerne og vælger 'Link tables'. -Nede i 'Files of Type' vælger du 'ODBC Databases' (Den aller sidste på listen) -Derefter opretter du en System DNS, User DSN eller File DSN, hvori du definerer din forbindelse til SQL-serveren, samt databasen du vil forbinde til. -Når det er gjort kan du vælge tabellerne du vil linke, og alt er klart.
Derefter laver du dine Queries (forespørgsler), baseret på dine linkede tabeller og Access tabellerne.
Jeg er sikkert ved at bevæge ned mellem to stole(Access vs SQL). Jeg tror på at det du skriver (jobba) skal virke men jeg kan ikke se mine tabeller når jeg connecter til sql-serveren. Mit login er det samme som når jeg logger på fra ASP, så hvorfor p..... kan jeg ikke herfra. Jeg roder lidt rundt i Enterprise manager på SQL serveren. Kan der mon være en grundt til at jeg kan fra ASP og ikke fra Access??? Jeg skal nok være flink med points hvis jeg kan få hjælp til dette, og jeg ved godt at jeg måske er ovre i SQL-domænet nu, men nu er jeg jo begyndt blandt Access -eksperterne.
Undersøg i din enterprise manager under din database og users, om den bruger du logger på med er datareader på databasen. Men ellers syntes jeg det lyder mærkeligt at du kan logge på med brugeren fra ASP, og laver forespørgsler, når du ikke kan se tabellerne fra Access.
ØV. Du har givet mig opskriften Jobba, og jeg kan se hvad du skriver skal være ok, da access "help" og et indlæg under SQL bekræfter det. Du får points, men desværre fik jeg ikke løst min opgave. Jeg arbejder med store tabeller, og hvergang jeg laver en ændring tager det adskillige minutter at opdatere permissions. Uanset hvad jeg ændrer synes det ikke at slå igennem. Man skal da ikke genstarte SQLserveren hver gang vel?
Anyway tak for hjælpen. Håber at jeg kan finde ud af resten nå en gang jeg får connection til at virke...
ige et sidste spørgsmål. Når jeg i asp kalder via DSN beskriver jeg også hvilken database den skal se i. Det bliver jeg ikke spurgt om i denne link. Jeg har dog sat den default til at linke til min base, så det er vel OK. Jeg undrede mig bare. Iøvrigt kan jeg også lave et DOS opslag med mit normale login ID ligesom i ASP. Hvorfor H.... det så ikke virker fra access???????
Tak for point. En DSN indeholder også information om hvilken database den skal forbinde til. Så Tjek din DSN om den refererer til den rigtige DB. Desuden burde det ikke være nødvendigt fra ASP at beskrive hvilken database du vil have kontakt med, hvis bare din DSN er ordentlig konfigureret.
Ja du har ret. Jeg har imidlertid fundet ud af at det nok ikke har noget med properties at gøre, men at den for denne ene databases vedkommende kun viser den førtse tabel i den liste hvor jeg skal vælge tabel. Uanset hvilken tabel jeg rename så den ligger sorteret øverst (altså "aaa" f.ex.) ja så kan jeg vælge den og ingen anden. Mærkeligt. alle andre db er der mange på listen.
Hmm.. Lyder meget underligt.. Måske skulle du prøve at spørge i SQL-gruppen om det problem. Go' arbejdslyst ;-)
Synes godt om
Ny brugerNybegynder
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.