@@ -90,7 +90,7 @@ template <class T> void Statement::Error(T* baton) {
90
90
// { Database db, String sql, Array params, Function callback }
91
91
Statement::Statement (const Napi::CallbackInfo& info) : Napi::ObjectWrap<Statement>(info) {
92
92
Napi::Env env = info.Env ();
93
- int length = info.Length ();
93
+ size_t length = info.Length ();
94
94
95
95
if (length <= 0 || !Database::HasInstance (info[0 ])) {
96
96
Napi::TypeError::New (env, " Database object expected" ).ThrowAsJavaScriptException ();
@@ -141,7 +141,7 @@ void Statement::Work_Prepare(napi_env e, void* data) {
141
141
stmt->status = sqlite3_prepare_v2 (
142
142
baton->db ->_handle ,
143
143
baton->sql .c_str (),
144
- baton->sql .size (),
144
+ static_cast < int >( baton->sql .size () ),
145
145
&stmt->_handle ,
146
146
NULL
147
147
);
@@ -226,7 +226,7 @@ template <class T> T* Statement::Bind(const Napi::CallbackInfo& info, int start,
226
226
Napi::Env env = info.Env ();
227
227
Napi::HandleScope scope (env);
228
228
229
- if (last < 0 ) last = info.Length ();
229
+ if (last < 0 ) last = static_cast < int >( info.Length () );
230
230
Napi::Function callback;
231
231
if (last > start && info[last - 1 ].IsFunction ()) {
232
232
callback = info[last - 1 ].As <Napi::Function>();
@@ -302,20 +302,22 @@ bool Statement::Bind(const Parameters & parameters) {
302
302
303
303
switch (field->type ) {
304
304
case SQLITE_INTEGER: {
305
- status = sqlite3_bind_int (_handle, pos,
305
+ status = sqlite3_bind_int64 (_handle, pos,
306
306
((Values::Integer*)field)->value );
307
307
} break ;
308
308
case SQLITE_FLOAT: {
309
309
status = sqlite3_bind_double (_handle, pos,
310
310
((Values::Float*)field)->value );
311
311
} break ;
312
312
case SQLITE_TEXT: {
313
- status = sqlite3_bind_text (_handle, pos,
313
+ status = sqlite3_bind_text64 (_handle, pos,
314
314
((Values::Text*)field)->value .c_str (),
315
- ((Values::Text*)field)->value .size (), SQLITE_TRANSIENT);
315
+ ((Values::Text*)field)->value .size (),
316
+ SQLITE_TRANSIENT,
317
+ SQLITE_UTF8);
316
318
} break ;
317
319
case SQLITE_BLOB: {
318
- status = sqlite3_bind_blob (_handle, pos,
320
+ status = sqlite3_bind_blob64 (_handle, pos,
319
321
((Values::Blob*)field)->value ,
320
322
((Values::Blob*)field)->length , SQLITE_TRANSIENT);
321
323
} break ;
@@ -517,7 +519,7 @@ void Statement::Work_AfterRun(napi_env e, napi_status status, void* data) {
517
519
// Fire callbacks.
518
520
Napi::Function cb = baton->callback .Value ();
519
521
if (IS_FUNCTION (cb)) {
520
- (stmt->Value ()).Set (Napi::String::New (env, " lastID" ), Napi::Number::New (env, baton->inserted_id ));
522
+ (stmt->Value ()).Set (Napi::String::New (env, " lastID" ), Napi::Number::New (env, static_cast < double >( baton->inserted_id ) ));
521
523
(stmt->Value ()).Set ( Napi::String::New (env, " changes" ), Napi::Number::New (env, baton->changes ));
522
524
523
525
Napi::Value argv[] = { env.Null () };
@@ -618,14 +620,14 @@ Napi::Value Statement::Each(const Napi::CallbackInfo& info) {
618
620
Napi::Env env = info.Env ();
619
621
Statement* stmt = this ;
620
622
621
- int last = info.Length ();
623
+ size_t last = info.Length ();
622
624
623
625
Napi::Function completed;
624
626
if (last >= 2 && info[last - 1 ].IsFunction () && info[last - 2 ].IsFunction ()) {
625
627
completed = info[--last].As <Napi::Function>();
626
628
}
627
629
628
- EachBaton* baton = stmt->Bind <EachBaton>(info, 0 , last);
630
+ EachBaton* baton = stmt->Bind <EachBaton>(info, 0 , static_cast < int >( last) );
629
631
if (baton == NULL ) {
630
632
Napi::Error::New (env, " Data type is not supported" ).ThrowAsJavaScriptException ();
631
633
return env.Null ();
@@ -813,7 +815,7 @@ Napi::Value Statement::RowToJS(Napi::Env env, Row* row) {
813
815
814
816
switch (field->type ) {
815
817
case SQLITE_INTEGER: {
816
- value = Napi::Number::New (env, (( Values::Integer*)field)->value );
818
+ value = Napi::Number::New (env, static_cast < double >((( Values::Integer*)field)->value ) );
817
819
} break ;
818
820
case SQLITE_FLOAT: {
819
821
value = Napi::Number::New (env, ((Values::Float*)field)->value );
0 commit comments