我想将下面的脚本转换为名为MobileSell.db的SQLite数据库。
我怎样才能做到这一点?
我有以下带扩展名为let strokeTextAttributes = [
NSAttributedStringKey.strokeColor : UIColor.green,
NSAttributedStringKey.foregroundColor : UIColor.lightGray,
NSAttributedStringKey.strokeWidth : -4.0,
NSAttributedStringKey.font : UIFont.boldSystemFont(ofSize: 52)
] as [NSAttributedStringKey : Any]
hello_cell_lb.attributedText = NSAttributedString(string: "\(hello_array[indexPath.row])", attributes: strokeTextAttributes)
的脚本:
let myController:MFMailComposeViewController = MFMailComposeViewController()
if MFMailComposeViewController.canSendMail() {
myController.mailComposeDelegate = self
myController.setToRecipients(["example@example.com"])
self.present(myController, animated: true, completion: nil)
}
答案 0 :(得分:3)
假设你的" .sql"文件名为" dump.sql"并且具有正确的SQLite语法,而不是逻辑错误或破坏的引用,
然后你可以通过调用SQLite3的命令行版本从命令行运行该文件,如下所示:
sqlite3.exe -init dump.sql MobileSell.db
当前workig目录是该文件夹时(在PATH
环境变量中包含sqlite3.exe或者在exe前面加上完整的绝对路径),这样做。
这假设Windows为环境(我的) 除了诸如" .exe"之类的东西之外,同样应该在其他环境中几乎完全相同。
然而,您的文件会出现一些错误:
Error: near line 4: no such column: id
Error: near line 14: no such column: deptid
Error: near line 92: unknown column "artid" in foreign key definition
Error: near line 101: no such table: main.routes
如果更改
,可以避免这些错误, CONSTRAINT [sqlite_autoindex_routes_1] PRIMARY KEY ([id])
- >
, CONSTRAINT [sqlite_autoindex_routes_1] PRIMARY KEY ([routeid])
和
, CONSTRAINT [sqlite_autoindex_dept_1] PRIMARY KEY ([deptid])
- >
, CONSTRAINT [sqlite_autoindex_dept_1] PRIMARY KEY ([debtid])
和
[customerid] bigint NULL
- >
[artid] nvarchar(9) NULL
, [customerid] bigint NULL
和
CREATE INDEX [routes_id_index] ON [routes] ([id] ASC);
CREATE INDEX [routes_id_index] ON [routes] ([routeid] ASC);
然后你得到输出" 1"没有错误,在当前工作目录中,您将拥有所需的文件" MobileSell.db"使用创建的数据库(旁边还有脚本文件" dump.sql")。
之后你仍然会在sqlite提示符下。使用例如.tables
命令验证成功。然后使用.quit
命令退出sqlite提示符。
如果您对使用命令行工具缺乏经验,请使用三个绝对路径;到exe,脚本以及db最终应该到达的位置。
<baspathtoexe>\sqlite3.exe -init <abspathtoscript>\dump.sql <abspathtodbtargetfolder>\MobileSell.db
您必须检查自己数据库的用途是否仍然完整。