title: Fetch data from FMDB Database
body: <p>In my app, i want to fetch data from FMDB database and that data i want to send to watch. But the problem is that when the data is fetched, it doesn't show the actual data in console like ticket_type = Movie, time = 11:42 p.m. Instead it shows only memory address result.</p>
  
  <p>The source code for my TicketData is below</p>
  
  <pre><code>class TicketData: NSObject {
  var field1: String?
  var field2: String?
  var field3: String?
  var field4: String?
  
  override init() {
      super.init()
  }
  
  convenience init(field1: String, field2: String, field3: String, field4: String) {
     self.init()
  
          self.field1 = field1
          self.field2 = field2
          self.field3 = field3
          self.field4 = field4
  
  }
  </code></pre>
  
  <p>}</p>
  
  <p>The screenshot for my app is
  screenshot for my app
  <img src="https://i.stack.imgur.com/0QKxj.png" alt="image"></p>
  
  <p>My source code is below</p>
  
  <pre><code>class TicketDetailViewController: UIViewController, WCSessionDelegate {
  
  var databasePath = NSString()
  var holding_Ticket_category: String = ""
  var holding_Image: UIImage?
  var hold_ticketName: String = ""
  var hold_ticketDate: String = ""
  var hold_ticketTime: String = ""
  var session: WCSession!
  var ticketDataArray:[TicketData] = []
  
  
  @IBOutlet weak var ticket_grey: UIImageView!
  @IBOutlet weak var cropped_frame: UIImageView!
  @IBOutlet weak var display_image: UIImageView!
  @IBOutlet weak var ticket_type_name: UILabel!
  @IBOutlet weak var ticket_date: UILabel!
  @IBOutlet weak var ticket_time: UILabel!
  @IBOutlet weak var ticket_category: UILabel!
  
  
  override func viewDidLoad()
  {
      super.viewDidLoad()
  
      if WCSession.isSupported(){
          self.session  = WCSession.defaultSession()
          self.session.delegate = self
          self.session.activateSession()
      }
  
      display_image.image = holding_Image
      ticket_type_name.text = hold_ticketName
      ticket_date.text = hold_ticketDate
      ticket_time.text = hold_ticketTime
      ticket_category.text = holding_Ticket_category
  
      let filemgr =  NSFileManager.defaultManager()
      let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
      let docsDir = dirPaths[0]
      var ticketDB: FMDatabase
  
      databasePath = (docsDir as NSString).stringByAppendingPathComponent("ticket_Pass.sqlite")
  
  
      if !filemgr.fileExistsAtPath(databasePath as String)
      {
  
          ticketDB = FMDatabase(path: databasePath as String)
          if ticketDB.open()
          {
  
              let sql_stmt = "CREATE TABLE IF NOT EXISTS TICKET (ID INTEGER PRIMARY KEY AUTOINCREMENT, IMAGE TEXT, TICKET_CATEGORY TEXT, TICKET_TYPE TEXT, DATE TEXT, TIME TEXT)"
              if !ticketDB.executeStatements(sql_stmt)
              {
                  print("Error: \(ticketDB.lastErrorMessage())")
              }
              ticketDB.close()
          } else
          {
  
              print("Error: \(ticketDB.lastErrorMessage())")
          }
      }
  }
  </code></pre>
  
  <p>@IBAction func addTickets(sender: UIButton)
    {</p>
  
  <pre><code>    let ticketDB = FMDatabase(path: databasePath as String)
      if ticketDB.open()
      {
  
              let insertSQL = "INSERT INTO TICKET (image, ticket_category, ticket_type, date, time) VALUES ('\(display_image.image!)', '\(ticket_category.text!)', '\(ticket_type_name.text!)', '\(ticket_date.text!)', '\(ticket_time.text!)')"
  
              let result = ticketDB.executeUpdate(insertSQL,withArgumentsInArray: nil)
  
              if !result
              {
  
                  print("Error: \(ticketDB.lastErrorMessage())")
  
              } else
              {
  
                  let alt = PMAlertController(title: "Success!", description: "Your data is saved to Database!", image: UIImage(named: ""), style: .Alert)
  
                  alt.addAction(PMAlertAction(title: "OK!", style: .Default, action: { (ACTION) -&gt; Void in
  
                           self.navigationController?.popToRootViewControllerAnimated(true)
  
                  }))
  
                          self.presentViewController(alt, animated: true, completion: nil)
                          print(databasePath)
  
  
             }
      }
  }
  
  
  @IBAction func deleteTickets(sender: UIButton) {
      let alt = PMAlertController(title: "Delete Ticket Details!", description: "Are you sure?", image: UIImage(named: ""), style: .Alert)
  
      alt.addAction(PMAlertAction(title: "Cancel", style: PMAlertActionStyle.Default, action: { (ACTION) -&gt; Void in
  
          self.dismissViewControllerAnimated(true, completion: nil)
  
      }))
      alt.addAction(PMAlertAction(title: "OK", style: PMAlertActionStyle.Default, action: { (ACTION) -&gt; Void in
  
          self.navigationController?.popToRootViewControllerAnimated(true)
      }))
      self.presentViewController(alt, animated: true, completion: nil)
  }
  
  
  @IBAction func sendToWatch(sender: AnyObject) {
  
  
      let ticketDB = FMDatabase(path: databasePath as String)
      if ticketDB.open()
      {
  
          let insertSQL = "INSERT INTO TICKET (image, ticket_category, ticket_type, date, time) VALUES ('\(display_image.image!)', '\(ticket_category.text!)', '\(ticket_type_name.text!)', '\(ticket_date.text!)', '\(ticket_time.text!)')"
  
          let result = ticketDB.executeUpdate(insertSQL,withArgumentsInArray: nil)
  
          if !result
          {
  
              print("Error: \(ticketDB.lastErrorMessage())")
  
          } else
          {
  
              let alt = PMAlertController(title: "Success!", description: "Your data is saved to Database!", image: UIImage(named: ""), style: .Alert)
  
              alt.addAction(PMAlertAction(title: "OK!", style: .Default, action:
                  { (ACTION) -&gt; Void in
  
                      let ticketDB = FMDatabase(path: self.databasePath as String)
                      if ticketDB.open()
                      {
  
                          let querySQL = "SELECT * FROM TICKET"
  
                          let result: FMResultSet? = ticketDB.executeQuery(querySQL, withArgumentsInArray: nil)
  
                          if let result = result
                          {
  
                             var ticketData = TicketData()
                              while (result.next() == true)
                              {
                                  let image = result.stringForColumn("image")
                                  let ticket_category = result.stringForColumn("ticket_category")
                                  let ticket_type = result.stringForColumn("ticket_type")
                                  let date = result.stringForColumn("date")
                                  let time = result.stringForColumn("time")
                                  ticketData = TicketData(field1: ticket_category!, field2: ticket_type!, field3: date!, field4: time!, field5: image!)
                                   self.ticketDataArray.append(ticketData)
  
  
                              }
                          print("Data: \(result.resultDictionary())")
  
  
                              }
  
  
                         }else
                         {
                              print("Error: \(ticketDB.lastErrorMessage())")
  
                         }
  
                      ticketDB.close()
  
  
                      }
  
              }))
  
              self.presentViewController(alt, animated: true, completion: nil)
              print(databasePath)
  
          }
      }
  </code></pre>