Avatar billede jacand Nybegynder
09. januar 2003 - 10:28 Der er 5 kommentarer og
1 løsning

DB connection via en system dsn

Hvordan laver man en DB connection via en system dsn til en access database der ligger på en anden server?
Jeg har prøvet at mappe et netværksdrev hvor databasen ligger, og sætte system dsn til den, men jeg får følgende fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.

/ny_side_2.asp, line 4
Linei 4 = Set rs = Conn.Execute(strSQL)

Med denne asp kode:
<%
'DB forbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=mail2"
strSQL = "SELECT * FROM users"
Set rs = Conn.Execute(strSQL)
Response.Write rs("Alias")
'Database lukning
Conn.Close
Set Conn = Nothing
%>
Avatar billede l_otto Nybegynder
09. januar 2003 - 10:44 #1
Du skal søge for at den mappe / drev hvor databasen ligger ikke er skrivebeskyttet eller på anden måde password beskyttet...
Avatar billede l_otto Nybegynder
09. januar 2003 - 10:44 #2
Du skal søge for at den mappe / drev hvor databasen ligger ikke er skrivebeskyttet eller på anden måde password beskyttet...
Avatar billede hossein Nybegynder
09. januar 2003 - 10:46 #3
<%
Set rs =  Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM users"
rs.open StrSQL, "DSN=mail2"
...
%>
Avatar billede jacand Nybegynder
09. januar 2003 - 12:02 #4
Set rs =  Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM users"
rs.open StrSQL, "DSN=mail2"
giver samme resultat.
mappen som er delt på den anden server er delt med everyone med full control, så der skulle ikke være problemer med den delte mappe.
Men lige efter jeg har prøvet at køre min asp kode går den til:
Disconnected K: \\fe001\test Microsoft Windows Network
Avatar billede jacand Nybegynder
09. januar 2003 - 12:24 #5
jeg fandt selv fejlen :-)

Fra http://support.microsoft.com/default.aspx?scid=kb;en-us;189408
SYMPTOMS
Failures occur when Active Server Pages (ASP) code accesses a file-based resource over the network. Examples include the following:
If you Scripting.FileSystemObject to access a file that is stored on a network share, you receive the following error message:

Server object error 'ASP 0177:800a0046'
Server.CreateObject Failed
...
The operation completed successfully.
If you access a local Microsoft Access database that is linked to a table where the table linked to is in an Access database on a network server, you receive the following error message:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet
Database engine cannot open the file '******'. It is already opened
exclusively by another user, or you need permission to view its data.
CAUSE
This behavior occurs when password synchronization is enabled for the IIS 4.0 application. For IIS 5.0, password synchronization is called "Allow IIS to control password."

When you connect to an Access database or that Access database is linked to Access tables across the network, this problem can be caused by a combination of password synchronization being enabled and a bug in the Odbcjt32.dll version 3.51.1029 (Microsoft Data Access Components 1.5). That particular problem has been fixed in MDAC version 2.0 and later.
RESOLUTION
Disable password synchronization for the Internet Information Server 4.0 application. For IIS 5.0, do not allow IIS to control the password. To do this, perform the following steps:
Open the Internet Services Manager.
Edit the Properties of the application.
On the Directory Security tab, edit Anonymous Access and Authentication Control.
Edit the Account used for Anonymous Access.
In IIS 4.0, clear the Enable Automatic Password Synchronization check box.

In IIS 5.0, clear the Allow IIS to control password check box.
STATUS
This behavior is by design.

This problem does not occur for IIS 5.0/Windows 2000 networks that are set up to use Kerberos authentication.
Avatar billede jacand Nybegynder
09. januar 2003 - 12:30 #6
Nu kan den både med system dsn
<%
strDSN = "Provider=MSDASQL; DSN=mail2;"
Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set rs =  Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM users"
rs.open StrSQL, strDSN, adOpenKeyset, adLockOptimistic
Response.Write rs("Alias")
rs.Close
Set rs = Nothing
%>
og DSNLess:
<%
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=k:\mail.mdb"
Const adOpenKeyset = 1
Const adLockOptimistic = 3
Set rs =  Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM users"
rs.open StrSQL, strDSN, adOpenKeyset, adLockOptimistic
Response.Write rs("Alias")
rs.Close
Set rs = Nothing
%>
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