Avatar billede carstensm Nybegynder
25. februar 2002 - 16:50 Der er 16 kommentarer og
2 løsninger

Kalde en procedure fra en query

Jeg skal bruge resultatet af en stored procedure i en anden query på denne måde:

En stored procedure: get_navn_from_id
  SELECT navn FROM Kunde where kundeID = @kundeID

En query:
  SELECT * FROM Kunde WHERE navn =
  EXECUTE get_navn_from_id(123)

Eksemplet er tænkt, men det virker heller ikke i praksis.

Hvad er løsningen
Avatar billede henrik13 Nybegynder
25. februar 2002 - 17:52 #1
Lav styringen i VBA og kør SQL. Så for du et resultat, hvor den ene forelspørgsel fodre den anden.
VH Henrik
Avatar billede carstensm Nybegynder
25. februar 2002 - 18:42 #2
henrik13> Ja, men det ville jo være for nemt, ikke? ;-)
Ideen er at styre det med SQL
Avatar billede terry Ekspert
25. februar 2002 - 19:58 #3
Why do you need to use a stored procedure?

What is it you want to do and I will se if I can give you some ideas?
Avatar billede carstensm Nybegynder
25. februar 2002 - 20:07 #4
I want to use the results from several stored procedures (or one procedure but several times) in one query from where they are all called (It's a matter of not having to write the same SQL over and over again).

Maybe I am going about it the wrong way? I'm looking into Macros now, maybe that is more lige it?
Avatar billede terry Ekspert
25. februar 2002 - 20:15 #5
FROM A QUERY YOU CAN CALL A FUCNTION IN A MODULE

Function tst() As String

    tst = "Hej!"
   
End Function

then a query would look like this

SELECT YourTable.*, tst() AS tst
FROM YourTable

You could also have a function where you send one of the fields

SELECT YourTable.*, tst([field1]) AS tst
FROM YourTable

and a funciotn could look like this!

FROM A QUERY YOU CAN CALL A FUCNTION IN A MODULE

Function tst(someField as String) As String

'Do something with someField
    tst = "This would contain result"
   
End Function
Avatar billede nih Novice
25. februar 2002 - 21:22 #6
Jeg har lavet en klient til SQLserver med 104 tabeller jeg forespørger i.
Løsningen på alle mine laaaaaange SQL sætninger, der lignede hinanden, var at lave en temptabel.
Denne temptabel bruger jeg så i andre forespørgsler, hvor jeg slipper for at referer til textfelter i formularer osv, netop fordi søgningen begrænses af temptabellen.
Hvis du har adgang til serveren kan det også være ide at gøre brug af views, der forenkler dine SQL på klienten.

Niels
Avatar billede terry Ekspert
26. februar 2002 - 12:29 #7
carstensm>hows it going?
Avatar billede carstensm Nybegynder
26. februar 2002 - 18:13 #8
Thanks for your suggestions, but none of them really worked in my case. All I learned was that what I wanted to do is probably not possible.
Avatar billede carstensm Nybegynder
26. februar 2002 - 18:14 #9
BTW I only meant to give you 10 points each, but the system tricked me :-)
Avatar billede terry Ekspert
26. februar 2002 - 18:22 #10
WHAT is it you want to do? Perhaps we can make some suggestions if you tell us!
Avatar billede carstensm Nybegynder
26. februar 2002 - 18:31 #11
Execute a stored procedure inside another query. And I mean a real stored procedure so that it works via ODBC. The homemade functions in Access don't work when calling the stored procedure from Java, via ODBC.
Avatar billede terry Ekspert
26. februar 2002 - 19:39 #12
carstensm>what is wrong with this?

SELECT * FROM Kunde
WHERE KundeName = (SELECT KundeName from Kunde WHERE KundeID = 123)
Avatar billede terry Ekspert
26. februar 2002 - 19:39 #13
No need for a stored procedure here and as far as I can see gives you what you want!
Avatar billede carstensm Nybegynder
26. februar 2002 - 19:46 #14
True, but as I said: that was just a thought-up SMALL example. In real life it would have saved me a lot of work.
Avatar billede terry Ekspert
26. februar 2002 - 19:56 #15
Are you saying that you MUST use a stored procedure?
Avatar billede carstensm Nybegynder
26. februar 2002 - 20:02 #16
No, but it would be easier for me to reuse code. Anyway, I've found a way around it by making some more tables and views.
Avatar billede terry Ekspert
26. februar 2002 - 20:09 #17
OK :o)
Avatar billede charmekbh Nybegynder
25. september 2004 - 13:53 #18
jeg har et probem der ligner det meget.

jeg har brug for følgende (konceptuelt)
select
      field1,
      field2,
      returværdifrastoredprocedure('param1'),
      returværdifrastoredprocedure('param2')
from
table

ken det lade sig gøre og giver det fornuft?
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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