Я полагаю, этот подход не правильный? Я нажал кнопку ОК, но на столе ничего не появляется. Есть ли другой способ получить данные из базы данных? Я хотел бы получить их как тип массива, если это возможно. Я только что добавил больше кодов. Пожалуйста, посмотрите на это, любая помощь будет оценена.
спасибо.
let filemgr = FileManager.default
let dirPaths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let docsDir = dirPaths[0] as String
databasesPath = docsDir.appending("/infos.db")
// 데이터베이스 파일이 존재하지 않으면 데이터베이스 파일 생성
if !filemgr.fileExists(atPath: databasesPath!) {
let contactDB = FMDatabase(path: databasesPath)
// 데이터베이스를 열고 info 테이블을 생성한다.
if contactDB.open() {
let sql_stmt = "CREATE TABLE IF NOT EXISTS INFOS (ID INTEGER PRIMARY KEY AUTOINCREMENT, WORD TEXT, MEANING TEXT, INFO TEXT)"
if !contactDB.executeStatements(sql_stmt) {
print("Error \(contactDB.lastErrorMessage())")
}
contactDB.close()
} else {
print("Error \(contactDB.lastErrorMessage())")
}
}
}
@IBAction func dropTable(_ sender: Any) {
let contactDB = FMDatabase(path: databasesPath)
if contactDB.open() {
let myQuery = "DROP TABLE IF EXISTS info"
contactDB.executeStatements(myQuery)
}
}
@IBAction func ok(_ sender: Any) {
let contactDB = FMDatabase(path: databasesPath)
if contactDB.open() {
let querySQL = "SELECT word FROM infos"
let result: FMResultSet? = contactDB.executeQuery(querySQL, withArgumentsIn: [])
allInfo.word = result?.string(forColumn:"word")
// next 메서드는 일치하는 레코드가 적어도 하나 이상인지 확인하기 위함
tableview.reloadData()
contactDB.close()
} else {
print("Error \(contactDB.lastErrorMessage())")
}
}