我正在开发一个简单的程序,我需要通过编写Ruby代码来打开我的Sqlite3数据库,但是在执行它时遇到以下错误: 'initialize':无法打开数据库文件(Sqlite£:CantOpenException) 来自first.rb:4:'new' 来自first.rb:4:in''
代码在这里:
require "sqlite3"
# Open a database
db = SQLite3::Database.open "C:\Users\aroraku\Desktop\SQL\adaptive.db"
# Find a few rows
db.execute( "
Select count(uuid) as RegistredPeopleNo, strftime('%Y-%m',created_at) AS Month
from users
group by strftime('%Y-%m',created_at)
order by Month;" ) do |row|
p row
end
有人可以帮我解决这个问题。提前致谢
答案 0 :(得分:1)
我猜你的问题是双引号字符串中的\
用于开始转义序列。例如:
> puts "C:\Users\aroraku\Desktop\SQL\adaptive.db"
C:UsersrorakuDesktopSQLdaptive.db
我的终端也发出几声嘟嘟声,我无法复制'n'paste。
你需要加倍反斜杠:
"C:\\Users\\aroraku\\Desktop\\SQL\\adaptive.db"
或改为使用正斜杠:
"C:/Users/aroraku/Desktop/SQL/adaptive.db"
Windows历史上允许在路径名中使用正斜杠或反斜杠,我不确定这是否仍然是正确的,因此正斜杠版本可能无效。
单引号(由Andrew Marshall指出)也是一个选项:
'C:\Users\aroraku\Desktop\SQL\adaptive.db'
但是你仍然可以遇到某些奇怪文件名的问题,因为反斜杠在单引号字符串中的某些狭隘情况(例如'\\'
和'\''
)中仍然有意义。