Daniel Noll wrote:


I've just discovered that when opening a URL with spaces in it, I get an error like this:
"Database 'directory:C:\Test\My Databases\Database' not found."

This is on Windows, and trying the same path with short filenames instead, worked.

I've tried:
   - Using / instead of \
- Using %20 to replace the spaces (like normal URL encoding... which would seem reasonable for a URL.)
   - Both of the above at the same time...

Neither worked.

Directories with spaces in them aren't exactly rare, so my question is, how do I encode a URL for a Derby database? The developer guide doesn't describe how Derby's URLs are supposed to be encoded.

Daniel

Hi Daniel,

The error above shows 'directory', was that in the url that was used. You need to just give the path to the database.
I just tried the following: successfully:

Thru ij:

C:\temp>java org.apache.derby.tools.ij
ij version 10.1
ij> connect 'jdbc:derby:c:\temp\my new dir\a temp\b temp\spdb;create=true';
ij> disconnect;
ij> exit;

C:\temp>java org.apache.derby.tools.ij
ij version 10.1
ij> connect 'jdbc:derby:c:\temp\my new dir\a temp\b temp\spdb';
ij> create table t(id int);
0 rows inserted/updated/deleted
ij> disconnect;
ij> exit;

Thru a small Java program:

try{
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
           System.out.println("Driver Loaded");
Connection conn=DriverManager.getConnection("jdbc:derby:c:\\temp\\my new dir\\a temp\\b temp\\spdb");
           System.out.println("Connection obtained");
       }catch(Exception e){
           System.out.println("Error "+e);
           e.printStackTrace();
       }

Output:
Driver Loaded
Connection obtained

Both the connections were to the same database..
Can you post more details about the issue you are facing.

-Rajesh



Reply via email to