ធ្វើការជាមួយ SQLite នៅក្នុង iOS ដោយប្រើ FMDB

Support Us

FMDB

FMDB គឺជា library របស់ objective ដែលអាចអោយយើងប្រើប្រាស់សំរាប់ភ្ជាប់ SQLite ទៅ iOS Application។ នេះជាទំព័រ⁣ Objective-C wrapper អំពី SQLite: http://sqlite.org/

FMDB SQLite iOS

FMDB SQLite iOS

 

អានសំណួរចម្លើយ SQLite :

http://www.sqlite.org/faq.html

ចាប់តាំងពី FMDB ត្រូវបានស្ថាបនាឡើងនៅលើកំពូលនៃ SQLite, អ្នកនឹងចង់អានផ្នែកខាងលើទៅផ្នែកខាងក្រោមទំព័រនេះយ៉ាងហោចណាស់ម្តង។ ហើយខណៈដែលអ្នកមាននៅទីនោះធ្វើឱ្យប្រាកដថាដើម្បីចំណាំទំព័រ SQLite ឯកសារ: http://www.sqlite.org/docs.html

CocoaPods

FMDB អាចដំឡើងបានដោយប្រើ CocoaPods.

ប្រសិនបើប្រើប្រាស់ FMDB ជាមួយ SQLCipher អ្នកត្រូវតែប្រើ FMDB/SQLCipher subspec ជាដាច់ខាត។  FMDB/SQLCipher subspec ប្រកាស SQLCipher ជា dependency, អនុញ្ញាត្ត FMDB អោយ compiled ជាមួយ the-DSQLITE_HAS_CODEC flag.

FMDB Class Reference:

http://ccgus.github.io/fmdb/html/index.html

Automatic Reference Counting (ARC) or Manual Memory Management?

អ្នកអាចប្រើ style អ្វីក៏បាននៅក្នុង Cocoa Project របស់អ្នក។ FMDB នឹង figure out នូវអ្វីដែរអ្នកកំពុងប្រើក្នុងអំឡុងពេល compile time ហើយវានឹងធ្វើអ្វីដែលត្រឹមត្រូវ។

របៀបប្រើប្រាស់

មាន main classes 3 ក្នុង FMDB:

  1. FMDatabase - Represents a single SQLite database. Used for executing SQL statements.
  2. FMResultSet - Represents the results of executing a query on an FMDatabase.
  3. FMDatabaseQueue - If you’re wanting to perform queries and updates on multiple threads, you’ll want to use this class. It’s described in the “Thread Safety” section below.

Database Creation

FMDatabase ត្រូវបានបង្កើតជាមួយ path SQLite database file។  path នេះ អាចមានលក្ខណះណាមួយក្នុងចំនោម ៣ ខាងក្រោមនេះcan be one of these three:

  1. A file system path. The file does not have to exist on disk. If it does not exist, it is created for you.
  2. An empty string (@""). An empty database is created at a temporary location. This database is deleted with the FMDatabase connection is closed.
  3. NULL. An in-memory database is created. This database will be destroyed with the FMDatabaseconnection is closed.

Opening

Executing Updates

ទាំងអស់នេះជា Executing update: CREATE,UPDATEINSERTALTERCOMMITBEGINDETACHDELETEDROPENDEXPLAINVACUUM, និង REPLACE statements (plus many more)។ ជាទូទៅប្រសិនបើ  SQL statement មិនចាប់ផ្តើមជាមួយ SELECT, វាជា update statement។

Executing updates បោះតម្លៃមកវិញជា BOOL។ បោះតម្លៃមកវិញជា YES មានន័យថា  បានជោគជ័យ, និង បោះតម្លៃវិញជា NO មានន័យថា មានកន្លែងខ្លះ error។

Executing Queries

SELECT statement គឺជា query និង ជា executed តាមរយះ one of the -executeQuery... methods.

Executing queries បោះតម្លែមកវិញជា FMResultSet object ប្រសិនបើ ជោគជ័យ, និង nil ក្នុងករណី មិនបានសំរេច។

យើងប្រើប្រាស់ loop ដើម្បីទាយតម្លៃម្តង ១ record ៗ

អ្នកត្រូវតែ invoke -[FMResultSet next] មុន attempting to access the values returned ក្នុង query, បើមិនដូច្នេះទេ អ្នកនឹងទទូលបានតែ ១ record

FMResultSet មាន methods ជាច្រើនដើម្បី retrieve data ក្នុង format ដែលត្រឹមត្រូវមួយ:

  • intForColumn:
  • longForColumn:
  • longLongIntForColumn:
  • boolForColumn:
  • doubleForColumn:
  • stringForColumn:
  • dateForColumn:
  • dataForColumn:
  • dataNoCopyForColumn:
  • UTF8StringForColumnName:
  • objectForColumnName:

Each of these methods also has a {type}ForColumnIndex: variant that is used to retrieve the data based on the position of the column in the results, as opposed to the column’s name.

Closing

ជាទូទៅ បន្ទាប់ពីប្រើប្រាស់ database រួចរាល់ហើយ អ្នកត្រូវបិទ ជៀសវៀងមានបញ្ហានៅពេលខាងមុខ

Download Sample Project FMDB