Avatar billede tdaugaard Nybegynder
29. oktober 2000 - 18:45 Der er 10 kommentarer og
2 løsninger

ActiveX: DB brug ?

Jeg har en ActiveX der skal køre på en webserver. Den checker et felt i en DB hvert # sekund. DB delen har jeg lavet nogenlunde ligesom i ASP:

Set ConnectDB = CreateObject(\"ADODB.Connection\")
Set CmdRecord = CreateObject(\"ADODB.RecordSet\")
       
strSQL = \"DBQ=\" + strDB + \";DRIVER={Microsoft Access Driver (*.mdb)};\"
ConnectDB.Open strSQL
   
strSQL = \"SELECT COUNT(*) AS total FROM messages WHERE (msgTo=\'\" + strUsername + \"\');\"
Set CmdRecord = ConnectDB.Execute(strSQL): strMails = CmdRecord(\"total\")
   
strSQL = \"SELECT COUNT(*) AS total FROM messages WHERE (msgTo=\'\" + strUsername + \"\' AND msgRead=\'N\');\"
Set CmdRecord = ConnectDB.Execute(strSQL): strNewMails = CmdRecord(\"total\")

Set CmdRecord = Nothing
Set ConnectDB = Nothing

strDB bliver sat vha. en property, ligesom Username.

sætter jeg strDB til en eksisterende test DB (da activex\'en ikke er til mig selv) og tester kontrollen lokalt i IE så funker det hele som var det smurt i integers *lol* men pakker jeg det med Package & Deployment Wizard, smider det på nettet så siger den at den ikke kan finde DB\'en.

Mit ? er så om den tror den skal lede på brugerens computer efter filen, eller hvad den gør, og hvis den gør det hvordan laver jeg det så, sådan at den åben DB\'en på serveren ??

Jeg skal bruge en løsning ikke en \"det kan ikke lade sig gøre\".
Avatar billede nolle_k Nybegynder
30. oktober 2000 - 14:12 #1
Du skal specificere i COnnect strengen at Database ligger på en anden maskine end klienten!

Denne Connect streng åbner for eksemple den mdb fil, der ligger på en maskine, der hedder TEST_PC3.
Det kræver dog at du er mapped til drevet før det kan lade sig gøre! HVis ikke dette er tilfældet er jeg ikke sikker på at du kan gøre det med Access så skal du nok have gang i MSQL!

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\\\Test_pc3\\C\\Biblio.mdb;Persist Security Info=False
Avatar billede tdaugaard Nybegynder
31. oktober 2000 - 06:25 #2
Ja, det er jo det .. det er på en ganske normal server (webhotel) at ActiveX\'en ligger.. og man kan ikke specificere f.eks. http://www.bla bla.dk/data.mdb ..
Avatar billede nolle_k Nybegynder
31. oktober 2000 - 08:15 #3
Hvordan instantiere du ActiveX\'en????? Altså oprette et objekt??
Avatar billede tdaugaard Nybegynder
31. oktober 2000 - 08:20 #4
Noget i retning af:

<OBJECT ID=\"Post\" CLASSID=\"CLSID:90AB1FEE-A216-11D4-B4C0-0000B4C4B122\" CODEBASE=\"CheckPost.CAB#version=1,0,0,0\">
<param name=\"db\" value=\"/data.mdb\">
<param name=\"username\" value=\"tdaugaard\">
</OBJECT>

men det virker fint lokalt ..
Avatar billede tdaugaard Nybegynder
31. oktober 2000 - 08:20 #5
hvis det var det du mente ..
Avatar billede nolle_k Nybegynder
31. oktober 2000 - 09:01 #6
Lige præcis det jeg mente!

Det der er problemet, hvilket du ser hvis du u-registrerer ActiveX komponenten på din egen maskine, er at ActiveX komponenten ikke bliver instantieret på Serveres men på Clienten! Hvilket forklarer, at den prøver at finde DB\'en på klienten!

Hvis ikke der er noget bruger interface i komponenten kan du lave en dll i stedet for, som du instantierer via HTML siden via ASP (CreateObject).

SÅ vidt jeg ved er det ikke muligt at instantiere et Bruger interface Object på en server, der kan bruges af en klient!

Avatar billede tdaugaard Nybegynder
31. oktober 2000 - 10:01 #7
Ja, det er det der er problemet da ActiveX\'en HAR et UI..
Avatar billede tdaugaard Nybegynder
31. oktober 2000 - 10:02 #8
Så min \"Jeg skal bruge en løsning ikke en \"det kan ikke lade sig gøre\".\" kan jeg godt skyde en hvid pil efter ?
Avatar billede nolle_k Nybegynder
31. oktober 2000 - 10:06 #9
Umiddelbart efter hvad min erfaring er så JA, men nok kun fordi det er en Access database vi snakker om! På SQL serveren er det muligt!

Ellers skal du til at Rode med DCOM og det er fandeme noget lort! Det har jeg prøvet og måtte opgive. Der er simpelthen så mange sikkerheds problemer at det er til at skide i havet over!



Avatar billede tdaugaard Nybegynder
31. oktober 2000 - 10:16 #10
hi hi ..

Nå, det er der ikke noget at gøre ved.
Avatar billede tdaugaard Nybegynder
31. oktober 2000 - 10:32 #11
Nå, men siden deet ikke kunne lade sig gøre og du har prøvet at hjælpe mig så får du nogle point alligevel. Dog ikke dem alle da jeg synes det ville være urimeligt. OK?
Avatar billede nolle_k Nybegynder
31. oktober 2000 - 11:24 #12
I orden du! Takker! Ked af at jeg ikke kunne hjælpe!
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