Avatar billede sigurd_h Praktikant
07. marts 2007 - 12:46 Der er 3 kommentarer og
1 løsning

Problem med ASP

Hej

Jeg har et problem.
Kode:
    cst = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & pathtodb
    set conn = CreateObject("ADODB.Connection")
    conn.open cst

  Sql = "Select count(*) as Found from klub where aktiv=1"
  Set Record =  Rs.Execute(Sql)

Fejl:

Microsoft VBScript runtime error '800a01a8'

Object required: ''

Jeg får fejlen i linien med:
  Set Record =  Rs.Execute(Sql)

Sigurd
Avatar billede mitbrugernavn Praktikant
07. marts 2007 - 12:49 #1
set rs = conn.execute(Sql)
Avatar billede cpufan Juniormester
07. marts 2007 - 13:13 #2
cst = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & pathtodb
    set conn = CreateObject("ADODB.Connection")
    conn.open cst

  Sql = "Select count(*) as Found from klub where aktiv=1"
  Set Record =  conn.Execute(Sql)
Avatar billede langfinger Nybegynder
07. marts 2007 - 13:39 #3
Jeg får fejlen
error '80004005'

Unspecified error

ved at prøve det du skrev cpufan
Avatar billede dantrold Nybegynder
07. marts 2007 - 22:52 #4
Skal lige siges den måde som er beskrevet til hvordan man kan connecte til en database er fra Secnet's support side som viser hvor enkelt man kan lave sine database kald.
bruger selv den måde hvis jeg arbejder med Access databaser, men det gør jeg meget meget sjællendt.

Opret en ny ASP-fil ved navn "database.asp" og indsæt følgende kode i den :

<%

Dim objConn ' Opret en variabel
            ' der kan bruges til at forbinde til databasen.

Sub OpenDataBase(strDBPath)
  ' Denne Sub gør det lettere i ASP koden
  ' at åbne en forbindelse til en Access database.
  ' Syntax :
  ' Call OpenDataBase("/databasemappen/databasensnavn.mdb")

  Dim strProvider ' Opret variabel til at indeholde
                  ' vores connection-string til databasen.

  ' Start med at sikre at variablen er tom
  strProvider = ""
  ' Tilføj oplysninger om hvilken database-driver der skal bruges
  strProvider = strProvider & "Provider=Microsoft.Jet.OLEDB.4.0;"
  ' Tilføj information om hvor databasen fysisk befinder sig på serveren
  strProvider = strProvider & "Data Source=" & Server.MapPath(strDBPath) & ";"
  ' Tilføj oplysninger om sikkerhedsniveauet der skal bruges til databasen
  strProvider = strProvider & "Persist Security Info=False"

  ' Opret et ADO Connection objekt
  Set objConn = Server.CreateObject("ADODB.Connection")
  ' Brug connection-string'en fra før til at oprette forbindelsen
  ' til databasen, via driveroplysninger m.v.
  objConn.Open strProvider
  ' Der er nu en åben og aktiv forbindelse til databasen.
End Sub

Sub CloseDataBase
  ' Denne Sub lukker forbindelsen til databasen efter brug.
  ' Bør altid kaldes efter arbejde med databasen,
  ' eller som den sidste funktion i ASP siden.
  ' Syntax :
  ' Call CloseDataBase

  ' Bed Connection objektet om at lukke forbindelsen
  objConn.Close
  ' Fjern Connection objektet fra hukommelsen på serveren.
  Set objConn = Nothing
End Sub

%>


I de følgende eksempler går vi ud fra at vi har oprettet en database ved navn "databasensnavn.mdb" og lagt den i mappen "databasemappen". I databasen har vi oprettet en tabel der hedder "Test", hvori der er oprettet 3 felter: ID, Overskrift og Indhold.

Sådan opretter man en ny record via SQL-sætning :

<!-- #include file="database.asp" -->
<html>
<body>
<%

' Åben en forbindelse til vores database

Call OpenDataBase("databasemappen/databasensnavn.mdb")

' Tilføj en ny record til tabellen "Test"

objConn.Execute "INSERT INTO Test (Overskift, Indhold) VALUES ('Vores overskift', 'Vores indhold')"

' Luk forbindelsen igen

Call CloseDataBase

%>
</body>
</html>



Det vil også være en fordel, hvis vi kan hente og vise indhold fra vores database, så her er et eksempel på hvordan det gøres via SQL-sætning :

<!-- #include file="database.asp" -->
<html>
<body>
<%

' Åben en forbindelse til vores database

Call OpenDataBase("databasemappen/databasensnavn.mdb")

Dim objRS ' Opret en variabel der skal indeholde RecordSets fra databasen

Set objRS = objConn.Execute("SELECT * FROM Test ORDER BY Overskrift")
If (Not objRS.BOF) And (Not objRS.EOF) Then ' Sikring mod fejl hvis ingen records blev fundet
  objRS.MoveFirst ' Flyt til første record i vores resultat
  While Not objRS.EOF ' Så længe vi ikke har nået sidste resultat, udfør
    Response.Write objRS("Overskrift") & "<br>" & vbCrLf ' Udskrif overskriften
    objRS.MoveNext ' Flyt til næste record i resultatlisten
  Wend
Else ' Der var ingen resultater
  Response.Write "Ingen records fundet.<br>" & vbCrLf
End If
objRS.Close ' Luk for recordset
Set objRS = Nothing ' Frigør fra hukommelsen på serveren

' Luk forbindelsen til serveren igen

Call CloseDataBase

%>
</body>
</html>


Hvis vi skal have opdateret en eksisterende record i databasen, gøres det således via SQL-sætning :

<!-- #include file="database.asp" -->
<html>
<body>
<%

' Åben en forbindelse til vores database

Call OpenDataBase("databasemappen/databasensnavn.mdb")

' Opdater en eksisterende record i tabellen Test

objConn.Execute "UPDATE Test SET Overskrift='Ny overskrift her' WHERE ID=1"

' Luk forbindelsen til databasen igen

Call CloseDataBase

%>
</body>
</html>


Sidst men ikke mindst, kan der jo også opstå et behov for at kunne slette en record igen. Det gøres således via SQL-sætning :

<!-- #include file="database.asp" -->
<html>
<body>
<%

' Åben en forbindelse til vores database

Call OpenDataBase("databasemappen/databasensnavn.mdb")

' Slet en record fra tabellen Test

objConn.Execute "DELETE FROM Test WHERE ID=1"

' Luk forbindelsen til databasen igen

Call CloseDataBase

%>
</body>
</html>





Her kommer så min måde at ville hente antal ud fra en database
Jeg vil anbefale du bruger din database kald sådan..
Og når du så vil tælle antal kan du gøre det sådan her

<%
Function GetCountKlub
Call OpenDataBase
  Dim objRS
  Dim strResulta
 
  strResulta = ""
                                             
  Set objRS = objConn.Execute("SELECT COUNT(*) as Found from klub where aktiv=1")
  If (Not objRS.BOF) And (Not objRS.EOF) Then
 
  strResulta = CLng(objRS(0))
 
  End If
 
  objRS.Close
  Set objRS = Nothing
 
  Response.Write "<font color=""#33CC99"">"
  GetCountKlub = strResulta
  Response.Write "</font>"
Call CloseDataBase 
End Function

Der hvor du så vil have antallet ud skriver du blot sådan her..

Response.Write "&nbsp;" & GetCountKlub
%>
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