用ASP打开远端MDB文件的方法
如果你用ODBC connection (DSN or DSN-less)来访问远端的(UNC path)数据库, OLEDB会出现以下错误信息:
: h3 H& W! V/ T8 w
6 J0 K- L5 F: B % S, Z) W( u4 B- m0 d( @9 j( @: V j
( G9 E9 L. w: T' |# pMicrosoft OLE DB Provider for ODBC Drivers error ’80004005’ + N% E$ j0 o/ Q' x
8 Z4 H2 r4 A. f! \
% r& O( A/ Z" v C
[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. + x8 Q% |6 q/ P& f; I& L* l+ a
: J6 A9 K7 A: M
, p+ m6 j; q3 n* D7 h. J 你完全可以避免这种错误--ASP和ActiveX支持两种方式打开MDB文件的DSN-less连接,或由其它机器访问MDB文件。
1 g4 k4 k, T$ s5 ^) j
- H6 q; e1 y- n$ R& c$ q0 i& ^0 W8 X- @
1. DAO database (only for small load)
: _8 v, k2 ~5 @4 b* b
& D2 ^: `& ]) J1 P" l+ `+ y
, h8 p5 ~9 l& C ]7 A( K9 L3 hDim File, Conn, RS
- _, U& O2 G0 ~' G* y( H
+ X: v+ p* |! n: d) QConst ReadOnly = False
6 [0 \, \9 A P+ \, a0 l% D8 _5 Y2 e/ y' {" n1 c( J4 J4 `
File = "\\server\share\file.mdb"
6 {8 f6 h) }5 S6 A
$ G4 l. a; \& a7 B& `Set Conn = CreateObject("DAO.DBEngine.35").Workspaces(0).OpenDatabase(File,,ReadOnly)
$ m7 t! L3 i; z: X
6 ~' B7 P |5 K% D! v' h7 tSet RS = Conn.OpenRecordset(SQL)
3 K: L$ g6 ~6 U* x, ?: F o# ?- R" U, o0 x
( ~" k7 }, W4 @1 d5 Y: U+ Q2 r
2. ADO Jet OLE DB provider 8 W- w$ k/ ?9 E& }/ H$ f% n
( R0 J# u) [; i4 ~! K
2 h6 w7 V% Q' U7 d+ o
Dim Conn, RS
1 _ S4 F4 ~; e. } u+ U u0 _% w+ l g: S2 q5 p
Set Conn = CreateObject("ADODB.Connection") ; \3 Q$ ]( A/ s6 w. Z
5 |# ~4 G0 ^" W' @" C
Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
. W. R4 ~ _* w/ h' [
& z3 r6 r, B$ T h7 y* C9 p- C; FConn.Open "\\server\share\file.mdb" 3 {9 i( e, T. }
8 B0 J. t% T4 s& I! }+ zSet RS = Conn.Execute(SQL)
3 q( |9 R( w3 x) Q
4 G4 P. {& f% d% @" P% x( _* N2 _0 ]) N
1 t- ]7 I$ o7 D9 C1 S你得确定使用ASP的用户有NT的数据库及共享访问权限。
8 {! ]+ _7 i1 t2 j; h$ N# ]9 {1 Q1 b1 J4 a3 j9 x/ s1 G
假定有权限的话,你亦可访问其它机器中的开放数据连接:
* C3 b2 `5 P2 }7 K- u' a( V$ n* i/ X- ~! X# C5 X; ~. c
) S& q. N" k6 O
http://www.pstruh.cz/ 4 u; w( ]0 k7 X# K- }# I3 m6 \
% u( R: J/ _" [$ P9 H& G' d& m. ySet UM = CreateObject("UserManager.Server")
& U# I7 @' t% r2 T
: c5 {+ s9 m& b5 N0 I% d* XUM.LogonUser "Login with the rights", "Password", "Domain" & j) v( N4 ?7 m3 o
) n9 ]$ W! P! @- d4 I2 h...
. [$ R9 F2 c3 z6 y
. @! x4 u" H+ y1 B! r" Aopen database 6 [5 c; I% d a. w, O
1 I3 j O- [6 e: e... / U( h1 r. g. ?4 O
* ^, ~9 S# u" f, T; X+ e- U X$ ?
UM.RevertToSelf
点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹