sql:connect to ODBC datasource where filename is long
Unable to parse email body. Email id is 6778
Unable to parse email body. Email id is 6778
> The only kludge I can think of is to copy the mdb file to somewhere > shorter, hack programmatically at the DSN to fix it up and in an > unwind-protect copy the database back to where it came from. Another hack would be to use a hardlink, which is possible for NTFS file systems: http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en- us/fsutil_hardlink.mspx?mfr=true -- Frank Buss, fb@frank-buss.de http://www.frank-buss.de, http://www.it4-systems.de
Hello Nick, | I use the ODBC Data Source Administrator to add a User DSN called foo | with the database located at: | | c:\123456789 123456789 123456789 123456789 123456789 123456789 | 123456789 123456789 123456789 123456789 123456789 123456789 123456789 | 123456789 a.mdb | | (that's 148 characters long). I go (sql:connect "foo") and all is | fine and dandy. | | I sql:disconnect, rename the file to | | c:\123456789 123456789 123456789 123456789 123456789 123456789 | 123456789 123456789 123456789 123456789 123456789 123456789 123456789 | 123456789 ab.mdb | | (149 characters), use the ODBC administrator to reconfigure the DSN | and go (sql:connect). This time, instead of a connection, I get a | little dialog ("Select Database") which is open to some random | directory and in which I have to select a *.mdb file (for instance, | the one I was trying to connect to) before I can continue. |...snip...| I believe the ODBC administrator is to blame. The limit for file or folder names in Windows 2000 is 215 characters. Moreover, SQLGetInfo(...,SQL_MAX_CATALOG_NAME_LEN) returns 260 both for 3.5 and 4.0 Access drivers. I would recommend a so-called DNS-less connection by specifying the pathname directly in the connect call rather than to referring to some DSN, but I do not know whether CommonSQL supports it. With YSQL, which implements DNS-less connection via SQLDriverConnect, and the Access driver version 4.00.6200.00, I get the following (sql:connect nil :database-type :access :driver-av-pairs '((:dbq "c:\\123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 ab.mdb"))) => #<ACCESS-3.5-DATABASE "NIL@c:\123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 123456789 ab.mdb" 2069BF04> FWIW, my drive C is formatted as FAT. -- Sincerely, Dmitriy Ivanov lisp.ystok.ru