Avatar billede lytzen Nybegynder
07. marts 2001 - 11:29 Der er 4 kommentarer og
1 løsning

returnering af recordsæt

Jeg vil gerne lave en funktion der skaber en forbindelse til en database, kører en sql-sætning og så til sidst returnerer et recordsæt.
Altså f.eks.:

<%
function getPerson
...
  sql = \"select * from person\"
  set rs = conn.execute(sql)
  getPerson = rs
end function

recordset = getPerson
%>

Men desværre vil ovenstående ikke lykkes. Der kommer følgende fejl:

Wrong number of arguments or invalid property assignment: \'recordset\'

Hvis det kan lade sig gøre, hvordan ordner man så det med close connection i funktionen ? Eftersom at forbindelsen skal lukkes ned efter brug. Eftersom jeg skal bruge recordsættet udenfor funktionen der åbnede forbindelsen, kan jeg ikke bare sådan lukke den ned idet forbindelsen kun \"eksisterer\" i funktionen.

Jeg håber nogen kan hjælpe mig med problemet.
Venlig hilsen
Thomas Lytzen Petersen


Avatar billede nute Nybegynder
07. marts 2001 - 11:34 #1
hvorfor oppretter du ikke ditt recordsett som en global variabel (dvs utenfor din function) dermed kan du eksekvere din sql og aksessere det uten at du trenger å returnere det....

/nute
Avatar billede lytzen Nybegynder
07. marts 2001 - 11:41 #2
Fordi jeg vil lave en asp-fil der kun indeholder funktioner. På den måde kan jeg lagdele mine asp-sider...jeg prøver at overholde min komponentarkitektur.
Avatar billede lytzen Nybegynder
07. marts 2001 - 11:50 #3
Well, jeg har nu selv fundet ud af det.
Jeg skal bare bruge \"set\" foran :

set getPerson = rs
...
recordset = getPerson


Avatar billede lytzen Nybegynder
07. marts 2001 - 11:51 #4
ups, der skulle også stå set recordset = getPerson
Avatar billede nysom Nybegynder
07. marts 2001 - 11:56 #5
Prøv denne her! Jeg har ikke testet den.

<%
function getPerson()

  dim sql, rs, value
...
  sql = \"select * from person\"
  set rs=server.CreateObject(\"ADODB.Recordset\")
  rs.open sql,conn
  if not rs.eof then value=rs.getrows()
  rs.close

  getPerson=value
end function

recordset = getPerson()
%>

Hvis du overfører sql-sætningen som en parameter, kan du endda bruge den samme funktion til at returnere alle dine recordsets.
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