Avatar billede datamaker Nybegynder
07. maj 2003 - 14:30 Der er 3 kommentarer og
1 løsning

Database forbindelse forskel fra IIS(nt 4.0) til IIS(WK2)

Jeg har lige skiftet min webserver ud med en WK2 server og dertilhørende IIS. Jeg kommer fra NT 4.0 med dertilhørende IIS. På den gamle webserver har jeg noget asp bygget op over en database til at administrerer nogle artikler, links m.m.

Det gamle kode ser således ud:
<%
  function execSQL(sql) {
    command = Server.CreateObject("ADODB.COMMAND");
    command.ActiveConnection = "artikel";
    command.CommandText = sql;
    return command.execute();
  }
%>

Men det virker ikke mere. Jeg har sat ODBC broen op som system DSN(har prøvet med user)

Er der noget som kan se hvad der er forkert ved koden. Jeg har selv tænkt på, om en nyere version af asp ikke kan kodes på denne måde.

Er der nogen der har et forslag, gerne dsn-less, vil jeg gerne se det. Men jeg vil stadig gerne undgå at skulle håndtere forbindelsen med databasen andre steder end i ovenstående funktion.

Databasen er en access database.
Avatar billede mcgreed Nybegynder
07. maj 2003 - 14:49 #1
Jeg bruger disse 2 methoder til at hente data:

    Set rs = Server.CreateObject("ADODB.RecordSet")
    SQL_Fields    = "Fieldname"
    SQL_From        = "Tablename"
    SQL_Where        = "(Tablename.Fieldname)=" & Request.QueryString("Field_ID")
    SQL_OrderBy    = "Tablename.Fieldname"
    SQL_Str = "SELECT " & SQL_Fields & " FROM " & SQL_From & " WHERE " & SQL_Where & " ORDER BY " & SQL_OrderBy
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/Database/Database.mdb")
    rs.Open SQL_Str, strDSN, 1, 1
    if Not rs.EOF Then
        Do While Not rs.EOF
            Response.Write rs("Fieldname") & vbCrLf     
        rs.MoveNext
        loop
        rs.close
        Set rs = nothing
    else
        rs.close
        Set rs = nothing
    end if

----------------------------------
    Set rs = Server.CreateObject("ADODB.RecordSet")
    SQL_Fields    = "Fieldname"
    SQL_From        = "Tablename"
    SQL_Where        = "(Tablename.Fieldname)=" & Request.QueryString("Field_ID")
    SQL_OrderBy    = "Tablename.Fieldname"
    Str_SQL = "SELECT " & SQL_Fields & " FROM " & SQL_From & " WHERE " & SQL_Where & " ORDER BY " & SQL_OrderBy
    strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/Database/Database.mdb")
    rs.Open Str_SQL, strDSN, 1, 1
    If Not rs.EOF Then
        alldata = rs.getrows
        rs.close
        Set rs = nothing
        numcols = ubound(alldata,1)
        numrows = ubound(alldata,2)
        FOR rowcounter = 0 TO numrows
            Str_Field1    = alldata(0,rowcounter)
            Str_Field2    = alldata(1,rowcounter)
        Next
    else
        rs.close
        Set rs = nothing
    end if
Avatar billede datamaker Nybegynder
07. maj 2003 - 14:54 #2
uh, den kræver vist lige lidt forklaring
Avatar billede datamaker Nybegynder
07. maj 2003 - 14:56 #3
iøvrigt, jeg får at vide, at der er en fejl i flg. linje:
command.ActiveConnection = "artikel";
Avatar billede datamaker Nybegynder
07. maj 2003 - 19:07 #4
jeg fandt syntax fejlen selv
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