S
Stephen Martin
Actually, those who say you cannot connect to an Access DB via TCP/IP are
correct. In your scenario you are not connecting to the database at all. You
are using TCP/IP as the protocol to connect to the file system of the remote
computer using the IP address rather than the more usual DNS name or NetBIOS
name (or even mapped drive). You seem to be confusing file sharing using the
IP address as identifier with a socket server connection to a database
engine using the TCP/IP protocols.
Access databases are file based which means that the local (in process) Jet
database engine manipulates the contents of the database via a file handle
to whatever file you have identified in your connection string. Your TCP/IP
connection simply returns a pseudo-handle to the remote file system which is
accessed as though it was local to return the appropriate results.
In a client/server based DBMS on the other hand you connect directly to the
database engine on the server via TCP/IP and the database server does all
the manipulation before returning the results.
Some of the confusion may be caused by the unfortunate use of the word
connection. You never literally connect to a database but rather to the
database engine which in turn accesses the file system (or whatever physical
store your DBMS uses) and RAM to retrieve/manipulate the data in the
database.
Also, your option 2 is the only viable one over the Internet since if you
are exposing file system sharing directly to the public Internet you should
probably be fired ASAP.
correct. In your scenario you are not connecting to the database at all. You
are using TCP/IP as the protocol to connect to the file system of the remote
computer using the IP address rather than the more usual DNS name or NetBIOS
name (or even mapped drive). You seem to be confusing file sharing using the
IP address as identifier with a socket server connection to a database
engine using the TCP/IP protocols.
Access databases are file based which means that the local (in process) Jet
database engine manipulates the contents of the database via a file handle
to whatever file you have identified in your connection string. Your TCP/IP
connection simply returns a pseudo-handle to the remote file system which is
accessed as though it was local to return the appropriate results.
In a client/server based DBMS on the other hand you connect directly to the
database engine on the server via TCP/IP and the database server does all
the manipulation before returning the results.
Some of the confusion may be caused by the unfortunate use of the word
connection. You never literally connect to a database but rather to the
database engine which in turn accesses the file system (or whatever physical
store your DBMS uses) and RAM to retrieve/manipulate the data in the
database.
Also, your option 2 is the only viable one over the Internet since if you
are exposing file system sharing directly to the public Internet you should
probably be fired ASAP.