Avatar billede robson Nybegynder
17. august 2001 - 11:04 Der er 17 kommentarer og
1 løsning

array som parameter

Er det i VB muligt at overføre et array til en funktion og arbejde med dette i funktionen. Fx


Private Function RegistrerAnnonceVisning(id As array)
  temp = id(0)
  temp = id(1)
  osv.....
End Function


--- Jeg ved godt at dette med \'Array\' ikke fungere, men hvad kan der gøres???
Avatar billede jennemaan Nybegynder
17. august 2001 - 11:08 #1
Function Dingdong(Id() As Long)

temp=id(0)
teno=id(1)
osv...
End Function
\'
/Jennemaan
Avatar billede robson Nybegynder
17. august 2001 - 11:21 #2
hmmm... jeg kan ikke umiddelbart få det til at virke. Der er tale om at jeg skal udvikle en dll funktion, som modtager et array fra en ASP side. Kaldet fra ASP tænker jeg vil være:

DLLnavn.Funktion(Array)

...men når jeg udfører dette får jeg blot fejlen:
\"Object doesn\'t support this property or method\"
(jeg har indført din kode i dll\'en og registreret denne)
Nogle ideer?
Avatar billede jennemaan Nybegynder
17. august 2001 - 11:26 #3
i ASP er ALLE variable af VARIANT typen. - Så hvis du vil have det til at virke skal du bruge

Function Dingdong(Id As Variant)

temp=id(0)
teno=id(1)
osv...
End Function
Avatar billede jennemaan Nybegynder
17. august 2001 - 11:29 #4
Og husk så lige at du er nød til at pakke det ind i et klassemodul



dinefunktioner.cls
Function Dingdong(Id As Variant)

temp=id(0)
teno=id(1)
osv...
End Function


---

i asp

set x=Createobject(\"dindll.dinefunktioner\")

Response.write x.Dingdong(ditarray)


/Jennemaan




Avatar billede robson Nybegynder
17. august 2001 - 11:33 #5
jep - jeg tester lige... :)
Avatar billede robson Nybegynder
17. august 2001 - 11:53 #6
Jeg gør som du har foreslået men den er ikke glad... :(
fejlen er stadig
\"Object doesn\'t support this property or method\"
HVAD GØR JEG????
Avatar billede jennemaan Nybegynder
17. august 2001 - 12:03 #7
altså...

Start VB... Projecttype vælge ActiveX dll ... Kald objektet test og indsæt koden i classmodulet for test.

test.cls:

Function HelloWorld()
HelloWorld=\"Hello World\"
End Function


Kald projektet for VB2ASP


Compile dll\'en og luk vb.

i ASP SKAL du nu kunne skrive

set x = createobject(\"VB2ASP.test\")

Response.Write x.HelloWorld()

Hvis det ikke virker, så prøv at genstarte din iis - eller hele maskinen.

/Jennemaan
Avatar billede jennemaan Nybegynder
17. august 2001 - 12:04 #8
Øhm... Husk lige under project-properties at sætte projektnavnet ik\'?
Avatar billede robson Nybegynder
17. august 2001 - 12:12 #9
Rolig nu... jeg har udviklet den overordnede dll, med flere funktioner der virker og som jeg sagtens kan tilgå fra mine ASP sider, så hele den proces er på plads og kører!!!

Den nye funktion i dll\'en der helst skulle kunne modtage et array er problemet!!!
Avatar billede robson Nybegynder
17. august 2001 - 12:33 #10
Jeg har testet lidt og problemet at dll\'en ikke forstår at det er et array den får ind. Nedenstående kode virker ikke:

Conn.Execute (\"UPDATE Ann SET HitsAfviklet = HitsAfviklet + 1 WHERE AnnID=\" & Id(0))

MEN det gør denne:
temp = 1
Conn.Execute (\"UPDATE Ann SET HitsAfviklet = HitsAfviklet + 1 WHERE AnnID=\" & temp)

...altså der må være en måde hvorpå jeg kan få den til at forstå at det er et Array den har at arbejde med - MEN HVORDAN??? HJÆLP
Avatar billede robson Nybegynder
17. august 2001 - 12:34 #11
...de her viste kode stykker er naturligvis udpluk fra funktionen i dll\'en  :)
Avatar billede jennemaan Nybegynder
17. august 2001 - 12:39 #12
prøv at checke dimensionerne på arrayet?

Er det et spørgsmål om det er 0 el. 1 indekseret?

/Jennemaan
Avatar billede robson Nybegynder
17. august 2001 - 12:44 #13
der er tale om et array med et variabelt antal poster sat - for hver sat post, der repræsenterer et ID i min database, skal der ske en update.

hvad mener du med \"om det er 0 el. 1 indekseret\"
Avatar billede roenving Novice
17. august 2001 - 12:49 #14
Option Base = 0 el.
Option Base = 1
Avatar billede robson Nybegynder
17. august 2001 - 12:51 #15
...øhhhh, forklaring udbedes, tak :)
Avatar billede roenving Novice
17. august 2001 - 13:00 #16
Du kan sætte, om et array-indeks skal starte ved 0 eller ved 1
Avatar billede jennemaan Nybegynder
17. august 2001 - 13:22 #17
Et array starter ved 0 el. 1 (m.m. andet er angivet).

Hvis arrayet starter med element 0 så er det 0-indekseret.

Hvis arrayet er 1-indekseret, vil du få en fejl ved id(0), idet elementet ikke eksisterer.

Hvis det altid er det første element du vil have fat i kan du skrive som følger:

temp=id(lbound(id))

/Jennemaan

   


Avatar billede robson Nybegynder
20. august 2001 - 10:20 #18
en ÅNDSVAG fejl (som jeg ikke vil belaste jer med) var skyld i at jeg ikke kunne få det til at virke. De første indlæg fra jennemaan var løsningen på mit problem - så lidt point til dig... Tak for hjælpen  :)
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