Avatar billede aero Nybegynder
25. november 2005 - 21:15 Der er 2 kommentarer og
1 løsning

kode der kan sige om sti til DB er ok eller ej

Jeg har en DB_functions fil med dette:
<%
'---- CursorTypeEnum Values ----
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
'---- LockTypeEnum Values ----
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4


Sub OpenDB

Const cnstDBPath = "d:\domæne\db\Database.mdb"
 
  Dim strProvider
  strProvider = ""
  strProvider = strProvider & "Provider=Microsoft.Jet.OLEDB.4.0;"
  strProvider = strProvider & "Data Source=" & Server.MapPath(cnstDBPath) & ";"
  strProvider = strProvider & "Persist Security Info=False"
 
  Set objConn = Server.CreateObject("ADODB.Connection")
  objConn.Open strProvider
End Sub


Sub CloseDB
  objConn.Close
  Set objConn = Nothing
End Sub
%>

Så har jeg en anden fil hvor den øverst er tilføjet:
<%
Call OpenDB

strSQL = "SELECT [TABEL1],[TABEL2],[TABEL3] FROM start_tabel WHERE [TABEL1] = 1"
Set objRS = objConn.Execute(strSQL)

Call CloseDB
%>

mit spm er nu om jeg har noget der kan sige om der er tilgang til databasen eller ej, jeg er nemlig ved Unoeuro og kan ikke få hjælp til at connecte til en access DB med dem og jeg bruger den sti de skriver i deres forum/support uden held.
Avatar billede eagleeye Praktikant
25. november 2005 - 23:12 #1
Hvis du bruge den fulde sti til database skal der ikke Server.Mappath omkring i strProvider.


Du kan tjekke om selv DB filen findes med FSO eks:

set fso = Server.CreateObject("Scripting.FileSystemObject")
Const cnstDBPath = "d:\domæne\db\Database.mdb"
if (fso.FileExists(cnstDBPath))=true Then
  'Connect til database

else
  'selve database filen kunne ikke findes
end if


Du kan også på connection objectet tjekke på .state for at se om objektet er åbnet.

if objConn.State = 0 then
  'IKKE Connected
else
  'Connected
end if


Så du kan lave det lidt om så den skriver en fejl besked:


Sub OpenDB

  On Error Resume Next
  Const cnstDBPath = "d:\domæne\db\Database.mdb"
  Dim strProvider
  strProvider = ""
  strProvider = strProvider & "Provider=Microsoft.Jet.OLEDB.4.0;"
  strProvider = strProvider & "Data Source=" & Server.MapPath(cnstDBPath) & ";"
  strProvider = strProvider & "Persist Security Info=False"
  Set objConn = Server.CreateObject("ADODB.Connection")
  kontaktOk = true
 
  set fso = Server.CreateObject("Scripting.FileSystemObject")
  if (fso.FileExists(cnstDBPath))=true Then
    objConn.Open strProvider
    if objConn.State = 0 then kontaktOk = false
  else
    kontaktOk = false
  end if
  if kontaktOk = false then
    response.Write "Fejl kunne ikke få kontakt til databasen, prøv at reloade siden."
  end if
  On Error Resume 0
End Sub
Avatar billede aero Nybegynder
30. november 2005 - 23:38 #2
vil du lægge et svar EE og mange tak
Avatar billede eagleeye Praktikant
30. november 2005 - 23:40 #3
Ja det vil jeg da meget gerne :)
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