Avatar billede hammer_of_belial Nybegynder
25. august 2004 - 17:41 Der er 7 kommentarer

Lotus Notes ekspert søges

Håber dette er det rigtige sted at skrive indlægget.

Jeg skal lave et website, hvor jeg ved hjælp af ASP/VBScript skal udtrække data fra en Lotus Notes database, så informationer kan blive hevet ud og vist på websitet. Jeg står helt på bar bund og har derfor brug for hjælp (mod betaling) til at oprette forbindelse til databasen og lave disse kald.

Kontakt mig venligst på fclund@esenet.dk
Avatar billede jogii Nybegynder
25. august 2004 - 18:57 #1
Hej FC
Jeg så dit indlæg på Experten vedr. tilgang til Notes data via VB.
Det er ikke sspecielt besværlig. Det kan gøres både via OLE og COM, og data kan evt. overføres som XML.
Hvor mange databaser skal du have adgang til? Skal data fortsat vedligeholdes i Notes/Domio og blot hentes/vises via IIS?
Hvilken type information skal hentes, er der billeder i?

Grundpilen til communikation med Notes via VB kunne være følgende kode:

    Dim sole
    Set sole = CreateObject("Notes.NotesSession")
    'Call s.Initialize
   
    Dim scom
    Set scom = CreateObject("Lotus.NotesSession")
    Call scom.Initialize

    msgbox sole.UserName

    Dim db

    ....

    Set db = sole.GetDatabase(servernavn$, dbfilenavn$)


Herfra burde du kunne komme videre.
Avatar billede hammer_of_belial Nybegynder
25. august 2004 - 22:05 #2
Jeg har prøvet med følgende (eksemplet er hentet fra IBM's hjemmeside):

' Create ADO Connection Component to connect with sample database
    Set oConn = Server.CreateObject("ADODB.Connection")
    oConn.ConnectionString = "DSN=NotesSQL_Sample"
    oConn.Open

    ' Create ADO Recordset Component, and associate it with ADO connection
    Set oRs = Server.CreateObject("ADODB.Recordset")
    Set oRs.ActiveConnection = oConn

Men den bliver ved med at give fejl:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Lotus][ODBC Lotus Notes]File does not exist
/homepages/Diverse/NotesSQL/Samples/ASP/ListAllUsrs.asp, line 25

Linie 25 er oConn.Open

Nogen idé om hvad fejlen kan være? Jeg er sikker på at DB'en har det pågældende navn (da scriptet og databasen som sagt er hentet hos IBM's support)
Avatar billede hammer_of_belial Nybegynder
25. august 2004 - 22:11 #3
Hov, glemte lige at svare på dine spørgsmål :-)

Der skal kun være adgang til én database, og data skal fortsat vedligeholdes i Notes. Umiddelbart er jeg ikke klar voer om der er billeder også, men jeg tror det ikke.
Avatar billede jogii Nybegynder
25. august 2004 - 22:37 #4
Du skal vist nok installere en NotesSQL-driver. Den kan hentes fra Lotus' hjemmeside, eller søg google NotesSQL.
Dette er et wrappermodul, som omsætter SQL-kald til tilsvarende Notes C-API-kald. Hvis du er meget hook på SQL så er det en måde at gøre det på, men NotesSQL anses  ikke just at være det hurtigste interface.
OLE/COM-interfacet arbejder mere på Notes' egne præmisser, men så skal man jo sætte sig ind i dette, så jeg kan godt forstå din tilgang...
Avatar billede hammer_of_belial Nybegynder
25. august 2004 - 23:16 #5
Jeg har hentet og installeret NotesSQL inden jeg gik i gang med at eksperimentere. Uden at ane hvad OLE/COM interfacet er, er det så noget du kan anbefale eller vise eksempler på?
Avatar billede jogii Nybegynder
27. august 2004 - 09:32 #6
OLE/COM interfacet er blot adgang til Notes/Dominoes hierarkiske datastruktur, hvor man har
Servere
  Databaser (minder om tabeller i RDB-miljø)
      Oversigter (minder om Views i RDB-miljø)
      Dokumenter (minder om Rows i tabeller)
        Felter (minder om columns i tabeller)

Derudover er der Designelementer som Forms, Subforms, ikoner, action buttons etc., men dem har du ikke behov for når du blot skal trække informationer ud.

Jeg ved ikke om du kender til forskellen mellem OLE og COM, men grundlæggende minder det MEGET om hinanden. OLE-interfacet har flere UI-funktioner til rådighed (ihverttilfælde i Notes sammenhæng) end COM, mens COM har bedre programmerings-funktioner, da kodebiblioteket er "forhåndserklæret", dvs. at  f.eks. Visual Basic har mulighed for at controllere syntaksen af kaldende under programmeringen, mens man i OLE programmerer "i blinde", dvs. først opdager visse programmeeringsfejl ved kald af OLE-funktioner under afviklingen, som ved anvendelse af COM ville blive fundes under programmeringen. Umiddelbart mener jeg at COM er OLE-kompatibel, dvs. at et programmeringsmiljø, som ikke understøtter de nye COM-faciliteter, tilgår COM som om det var OLE.

Lige en kommentar til din oprindelige tilgangsvinkel:
Når man tilgår Notes-databaser, så skal de normal ligge i eller under NotesData biblioteket. Jeg har lige kigget lidt på dit ADO-script foroven, og jeg kan ikke se at du angiver nogen forbindelse hverken til en server eller database, blot
  oConn.ConnectionString = "DSN=NotesSQL_Sample"
Hvis du kigger på den struktur som jeg viser foroven i denne kommentar, så kan du se at det ser lidt tynd ud i forhold dertil. Linie 25, er det der hvor der står
  oConn.Open  ?
Jeg kender selv ikke ADO (eller OLEDB, er det det samme?), så jeg kan ikke fortælle dig hvad der mangler.

Jeg bliver nødt til at stoppe nu, da jeg skal videre.
Avatar billede hammer_of_belial Nybegynder
27. august 2004 - 10:11 #7
Okay Jogii. Tak for dit input og din tid :-)
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
Computerworld tilbyder specialiserede kurser i database-management

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