Наше приложение C # обращается к базе данных H2 (1.3.164) через H2Sharp. ОС Windows 7, 64 бит.
Строка подключения
jdbc:h2:C:\Users\TestUser\Desktop\TestAppStorage\TestDB;INIT=RUNSCRIPT FROM 'C:\Users\TestUser\Desktop\TestAppStorage\init.sql'
вызывает следующее исключение:
Произошла ошибка при подключении к базе данных:
IO Exception: "java.io.FileNotFoundException: Could not find file 'C:\Users\TestUser\Desktop\VS Projects\TestManagerApp\bin\Debug\UsersTestUserDesktopTestAppStorageinit.sql'."; "C:UsersTestUserDesktopTestAppStorageinit.sql"; SQL statement:
RUNSCRIPT FROM 'C:UsersTestUserDesktopTestAppStorageinit.sql' [90031-164]
Значение пути зависит от выбора пользователя в пользовательском интерфейсе. Как предоставить сценарию инициализации полный путь под Windows? Примеры, которые я видел, всегда используют ~
в качестве начала пути, но в наших случаях это может быть не так.
Кстати, насколько я вижу, строка верна до тех пор, пока она не будет передана H2 из H2Sharp (т.е. H2Sharp не вызывает проблем до вызова java.sql.DriverManager.getConnection(connectionString, userName, password);
.