PhoneGap-SQLitePlugin-Android/README.md

101 lines
3.0 KiB
Markdown
Raw Normal View History

2011-06-23 10:03:47 -04:00
Phonegap SQLitePlugin
=====================
This is Joe Noon's fork of Phonegap-SQLitePlugin
2011-06-23 10:03:47 -04:00
This fork lives at: https://github.com/joenoon/Phonegap-SQLitePlugin
2011-06-23 10:03:47 -04:00
The original lives at: https://github.com/davibe/Phonegap-SQLitePlugin
2011-06-23 10:03:47 -04:00
This fork has largely diverged from the original, and is not a drop-in
replacement.
2011-08-14 03:22:11 -04:00
DISCLAIMER:
2011-09-26 20:05:16 -04:00
I'm brand new to objective-c, so there could be problems with my code!
Please tell me. joenoon@gmail.com
2011-08-14 03:22:11 -04:00
Added:
2011-08-14 03:22:11 -04:00
2011-09-26 20:05:16 -04:00
- obj-c:
- batch execution support
- query parameter binding
- perform after delay so js-objc call doesn't need to wait for response
- callbacks moved out of instance and into options of each method call
- path just takes filename, and path is put in Documents folder
- added rowsAffected, insertId
- success callback response is { insertId: x, rowsAffected: y, rows: z }
- error callback response is { message: x }
2011-09-26 20:05:16 -04:00
- js (coffeescript):
- new implementation
- first cut transaction support
- callbacks per-statement, even within transaction
- somewhat similar api to the webkit/phonegap default
Removed:
2011-09-26 20:05:16 -04:00
- quota limit webkit html5 db patching
- exit from app
- (I don't think either of these would make it through the approval process)
Other notes:
2011-09-26 20:05:16 -04:00
I played with the idea of batching responses into larger sets of
writeJavascript on a timer, however there was only a barely noticeable
performance gain. So I took it out, not worth it. However there is a
massive performance gain by batching on the client-side to minimize
PhoneGap.exec calls using the transaction support.
Installing
==========
Drag .h and .m files into your project's Plugins folder (in xcode) -- I always
just have "Create references" as the option selected.
Compile the coffeescript file to javascript WITH the top-level function wrapper
option (default).
Use the resulting javascript file in your HTML.
Look for the following to your project's PhoneGap.plist:
2011-09-26 20:05:16 -04:00
<key>Plugins</key>
<dict>
...
</dict>
Insert this in there:
2011-09-26 20:05:16 -04:00
<key>PGSQLitePlugin</key>
<string>PGSQLitePlugin</string>
General Usage
=============
(You're using Coffeescript right? Of course you are.)
2011-09-26 20:05:16 -04:00
db = new PGSQLitePlugin("test_native.sqlite3")
db.executeSql('DROP TABLE IF EXISTS test_table')
db.executeSql('CREATE TABLE IF NOT EXISTS test_table (id integer primary key, data text, data_num integer)')
2011-09-26 20:05:16 -04:00
db.transaction (tx) ->
2011-09-26 20:05:16 -04:00
tx.executeSql [ "INSERT INTO test_table (data, data_num) VALUES (?,?)", "test", 100], (res) ->
2011-09-26 20:05:16 -04:00
# success callback
2011-09-26 20:05:16 -04:00
console.log "insertId: #{res.insertId} -- probably 1"
console.log "rowsAffected: #{res.rowsAffected} -- should be 1"
2011-09-26 20:05:16 -04:00
# check the count (not a part of the transaction)
db.executeSql "select count(id) as cnt from test_table;", (res) ->
console.log "rows.length: #{res.rows.length} -- should be 1"
console.log "rows[0].cnt: #{res.rows[0].cnt} -- should be 1"
2011-09-26 20:05:16 -04:00
, (e) ->
2011-09-26 20:05:16 -04:00
# error callback
2011-09-26 20:05:16 -04:00
console.log "ERROR: #{e.message}"