Avatar billede sbhansen Nybegynder
16. oktober 2000 - 05:12 Der er 5 kommentarer og
1 løsning

Holde connection åben – ADODB

Holde connection åben – ADODB

Jeg ønsker i VB6 at have flere connections til forskellige DB. (6 stk)
Jeg kan godt skabe connections, men når jeg vil bruge dem senere, så får jeg at vide, at Connectionen ikke genkendes.

Jeg ønsker at åbne alle 6 efterhånden som brugeren udpeger disse i commondialogs, og herefter blot bruge løs...

Eksempel:
Public Function connect(DBType As String, DB As String) As Boolean

Dim ConnDBVariables as ADODB.Connection
Dim connectionstring As String

connectionstring = \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\" & DB
-hvor DB er filename fra en commondialogboks

Set ConnDBVariables = New ADODB.Connection
ConnDBVariables.Open connectionstring

...
...
end sub

Nu er connection åbnet, men når jeg senere i programmet forsøger at genbruge min connection i en anden sub, placeret i et separat modul, så genkender den ikke min connection, ConnDBVariables.

Jeg troede at min connection var åben indtil jeg selv lavede kaldet: ConnDBVariables.Close

Kort og godt: Hvordan holder jeg min connection åbnet, sådan at jeg kan kalde en almindelige execute uden først igen at skulle åbne connection’en?


Avatar billede powell Nybegynder
16. oktober 2000 - 12:50 #1
Når du nu har åbnet ovenstående rutine, så lav en sub. som skal kalde noget i db\'en, og du vil få et problem. Subben kan sikkert ikke se de variabler du har åbnet din db med, og det er her dit problem er.
Avatar billede sbhansen Nybegynder
16. oktober 2000 - 15:10 #2
Har du en ide til, hvordan vi får den til at \"genkende\" mine connection-variable. For du har jo ret i din antagelse... :-)

Som det er lige nu skal jeg genskabe min ckonnection i hver sub. Det er jo ikke så smart, hvis den netop kan huske og genkende dem. Any ideas?
Avatar billede powell Nybegynder
16. oktober 2000 - 15:21 #3
Hvad med general declarations, da kan du lægge dine dimentioneringer af de forskellige variabler. Derved kan de genkendes overalt i koden.
Avatar billede sbhansen Nybegynder
16. oktober 2000 - 17:15 #4
Det må jeg prøve. Kan du kort give et hint om, hvor de placeret - jeg forestiller mig, at de bare lægges øverst i et modul. Det er nemlig det jeg gør nu. Men skal man fortælle særskilt, at de er public/general declarations?
Avatar billede powell Nybegynder
17. oktober 2000 - 08:23 #5
Hvis du har f.eks. VB6, så prøv at starte en ny form, klik dig ind så du står i Private sub Form-Load(), herfra klikker du på bjælken hvor der står Form, vælg General, nu står du der hvor du skal... (general Declarations)
Avatar billede nolle_k Nybegynder
21. oktober 2000 - 10:22 #6
Det du vil opleve i det pågældende eksempel er faktisk en memory leak da du opretter et objekt men aldrig får det nedlagt igen, selvom jeg faktisk godt kunne forestille mig at VB styrer det for dig. *gg*

Det smarteste ville være at oprette et Modul og erklære de nødvendige variable her som public.



Men man kunne selvfølgelig også lave det i en klasse, der godt nok har de pågældende variable private men som har properties eller funktioner til at hente de ønskede variable! Så kunne du også refererer til dem via et navn hvis du vel og mærke laver en collection ud af klassen!
Det skulle du næste prøve! Det er skide smart!

Fremgangs måde!

Lav en klasse med de public variable eller properties der skal kunne ses udefra!

Herefter tilføjer du endnu en klasse, dog benytter du VB Class Builder! Herefter vælger du at Add New Collection! Du vælger at lave en collection udfra den klasse du oprettede før!

Herefter har du en collection du selv har oprettet hvor du kan Add, remove og bruge For Each!

Det er sgu genialt!

Håber ikke jeg har forvirret dig alt for meget! Ellers skriv!
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel