/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Access: Forespørgsel returnerer mere end é~
Fra : Jesper Stocholm


Dato : 16-11-02 12:39

Af forskellige årsager har jeg set mig nødsaget til at anvende Access som
DB-backend i et projekt, og da det efterhånden er noget tid siden det skete
sidst, er jeg blevet lidt "rusten" i dena opførsel.

Burde Access ikke understøtte forespørgsler, der returnerer mere end et
enkelt recordset ? Jeg har behov for at hente to værdier ud af min Access
2k database, og jeg tænkte, at jeg kunne hente dem ud i en enkelt
forespørgsel ... men jeg kan ikke få det til at virke.

Min kode er :

set oCon = Server.CreateObject("ADODB.Connection")
set oRs = Server.CreateObject("ADODB.Recordset")
   oCon.Open application("dsn")
   strSQL = "SELECT COUNT(*) As CountOfBooks FROM books;" &_
           "SELECT COUNT(*) As CountOfUsers FROM users"
   with oRs
      .ActiveConnection =   oCon
      .CursorLocation =   3 ' adUseclient
      .CursorType =      0 ' adOpenForwardOnly
      .LockType =      1 ' adLockReadOnly
      .Source =         strSQL
      .Open        '<-- linie 30
   end with
   iBooks = oRs("CountOfBooks")
   oRs = oRs.nextRecordset
   iUsers = oRs("CountOfUsers")
oCon.Close
set oCon = nothing

Men det virker ikke. Jeg får fejlen, at

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

[Microsoft][ODBC Microsoft Access Driver] Characters found after end of SQL
statement.

/default.asp, line 30

Hvor er det den går galt for mig ?

--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

 
 
Jakob Andersen (16-11-2002)
Kommentar
Fra : Jakob Andersen


Dato : 16-11-02 13:03

"Jesper Stocholm" <jespers@stocholm.invalid> wrote
> Af forskellige årsager har jeg set mig nødsaget til at anvende Access som
> DB-backend i et projekt, og da det efterhånden er noget tid siden det
skete
> sidst, er jeg blevet lidt "rusten" i dena opførsel.
> Burde Access ikke understøtte forespørgsler, der returnerer mere end et
> enkelt recordset ?

JET understøtter ikke flere forespørgsler ad gangen, så måske skulle du
kigge på de forskellige årsager igen

> Jeg har behov for at hente to værdier ud af min Access
> 2k database, og jeg tænkte, at jeg kunne hente dem ud i en enkelt
> forespørgsel ... men jeg kan ikke få det til at virke.

Så bliver du nødt til at kalde Execute metoden 2 gange, med de 2 forskellige
forespørgsler

--
Jakob Andersen



Jesper Stocholm (16-11-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 16-11-02 13:10

Jakob Andersen wrote :

> "Jesper Stocholm" <jespers@stocholm.invalid> wrote
>> Af forskellige årsager har jeg set mig nødsaget til at anvende Access
>> som DB-backend i et projekt, og da det efterhånden er noget tid siden
>> det skete sidst, er jeg blevet lidt "rusten" i dens opførsel.
>> Burde Access ikke understøtte forespørgsler, der returnerer mere end
>> et enkelt recordset ?
>
> JET understøtter ikke flere forespørgsler ad gangen,

nu opsættes min forbindelse ikke vha JET med ODBC ... men det er måske
ikke relevant i det specifikke tilfælde :)

> så måske skulle du kigge på de forskellige årsager igen

jaja ... men det er det sædvanlige med laveste fællesnævner og lignende.
Der går desværre et par måneder før jeg kan gå til fx mySQL :(

>> Jeg har behov for at hente to værdier ud af min Access
>> 2k database, og jeg tænkte, at jeg kunne hente dem ud i en enkelt
>> forespørgsel ... men jeg kan ikke få det til at virke.
>
> Så bliver du nødt til at kalde Execute metoden 2 gange, med de 2
> forskellige forespørgsler

crap !



--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

Jens Gyldenkærne Cla~ (16-11-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 16-11-02 13:12

Jesper Stocholm skrev:

> Burde Access ikke understøtte forespørgsler, der returnerer
> mere end et enkelt recordset ?

Måske burde den, men jeg mener ikke at den gør det. Det har været
oppe enten her eller i accessgruppen sidste gang der blev
diskuteret formsikkerhed - her kom det så vidt jeg husker frem at
Access netop ikke understøtter flere forespørgler i samme sql-kald.

> Jeg har behov for at hente to
> værdier ud af min Access 2k database, og jeg tænkte, at jeg
> kunne hente dem ud i en enkelt forespørgsel

Du kan evt. skrive det om til én forespørgsel:

> strSQL = "SELECT COUNT(*) As CountOfBooks FROM books;" &_
> "SELECT COUNT(*) As CountOfUsers
> FROM users"

SELECT COUNT(*) As antal, 1 as fNr FROM books
UNION
SELECT COUNT(*), 2 FROM users
ORDER BY fNr
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

Peter Lykkegaard (16-11-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 16-11-02 13:25

Som svar på skriblerier forfattet af Jesper Stocholm

> strSQL = "SELECT COUNT(*) As CountOfBooks FROM books;" &_
> "SELECT COUNT(*) As CountOfUsers FROM users"

Har du prøvet at neste dem?

SELECT
(SELECT COUNT(*) FROM books) As CountOfBook,
COUNT(*) As CountOfUsers FROM users

mvh/Peter Lykkegaard



Jesper Stocholm (16-11-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 16-11-02 13:57

Peter Lykkegaard wrote :

> Som svar på skriblerier forfattet af Jesper Stocholm
>
>> strSQL = "SELECT COUNT(*) As CountOfBooks FROM books;" &_
>> "SELECT COUNT(*) As CountOfUsers FROM users"
>
> Har du prøvet at neste dem?
>
> SELECT
> (SELECT COUNT(*) FROM books) As CountOfBook,
> COUNT(*) As CountOfUsers FROM users

Peter, Jens

se, det er jo netop disse små tricks man glemmer, når man/jeg ikke har
arbejdet med et produkt i et stykke tid.

tak til jer begge to ...



--
Jesper Stocholm
http://stocholm.dk
Ny FAQ for dk.edb.internet.webdesign.serverside.asp
se http://asp-faq.dk

Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste