The Easysoft Access ODBC driver uses the libsmbclient
library, which is part of the Samba suite, to:
.mdb
or .accdb
).Without this mechanism, there is the potential for database file corruption when Windows users and Access ODBC driver users are working with the database specified by mdbfile
.
To configure the driver for use with the libsmbclient
, you use the smb*
attributes in the driver data source.
If the "Failed to open SMB channel" error contains "file not found", check the smbpath
attribute in the data source. The smbpath
attribute needs to specify the SMB URL for the database file specified with mdbfile
. The SMB URL has the format smb://host/share/path/mdbfilename
.
In the following example, a remote Access database named Northwind.mdb
is located on the Access ODBC driver machine in /mnt/myshare_mountdir
. The mount
command shows that /mnt/myshare_mountdir
is the mount point for a share named myshare
on a machine named myremotemachine
.
$ grep mdbfile /etc/odbc.ini mdbfile = /mnt/myshare_mountdir/Northwind.mdb $ mount //myremotemachine/myshare on /mnt/myshare_mountdir type smbfs (rw)
The SMB URL for the database file would therefore be:
smb://myremotemachine/myshare/Northwind.mdb
If the "Failed to open SMB channel" error contains "errno=13", check the smbuser
and smbauth
attributes in the data source.
If the database file is located on a Samba share on Linux or UNIX, the smbuser
and smbauth
attributes need to specify the user name and password for a Samba user (created with Samba tools such as smbpasswd
) who has read access to the share. To open a database file for read-write access (readonly
data source attribute set to no
), the Samba user also needs write access to the share).
If the database file is located in a Windows share, the smbuser
and smbauth
attributes need to specify the user name and password for a Windows user who can access the share. If smbuser
only has read privilege to the database file (as opposed to read and write), the readonly
attribute in the data source needs to be set to yes
. Otherwise, an "errno=13" error will be returned.