diff --git a/src/fb-bindings-connection.cc b/src/fb-bindings-connection.cc index d57e5e2..876cc87 100644 --- a/src/fb-bindings-connection.cc +++ b/src/fb-bindings-connection.cc @@ -806,7 +806,8 @@ void Connection::EIO_After_Query(uv_work_t *req) HandleScope scope; struct query_request *q_req = (struct query_request *)(req->data); delete req; - + + printf("in after query\n"); Local argv[3]; if (!q_req->result) { @@ -822,20 +823,21 @@ void Connection::EIO_After_Query(uv_work_t *req) Local js_result(FBResult::constructor_template-> GetFunction()->NewInstance(3, argv)); - if(q_req->statement_type==isc_info_sql_stmt_exec_procedure){ + if(q_req->statement_type==isc_info_sql_stmt_exec_procedure ){ + printf("this is proc\n"); FBResult *fb_res = ObjectWrap::Unwrap(js_result); - Local js_value = fb_res->getCurrentRow(true); argv[1] = fb_res->getCurrentRow(true); } else argv[1] = Local::New(js_result); argv[0] = Local::New(Null()); } - + TryCatch try_catch; + printf("before callback \n"); q_req->callback->Call(Context::GetCurrent()->Global(), 2, argv); - + printf("after callbackn"); if (try_catch.HasCaught()) { node::FatalException(try_catch); @@ -845,6 +847,9 @@ void Connection::EIO_After_Query(uv_work_t *req) q_req->conn->stop_async(); q_req->conn->Unref(); free(q_req); + + printf("out aft query\n"); + // scope.Close(argv[1]); } @@ -854,6 +859,7 @@ void Connection::EIO_Query(uv_work_t *req) struct query_request *q_req = (struct query_request *)(req->data); q_req->result = q_req->conn->process_statement(&q_req->sqlda,**(q_req->Query), &q_req->stmt, &(q_req->statement_type)); + delete q_req->Query; return; } @@ -890,7 +896,7 @@ Handle uv_work_t* req = new uv_work_t(); req->data = q_req; uv_queue_work(uv_default_loop(), req, EIO_Query, EIO_After_Query); - + //uv_ref(uv_default_loop()); conn->Ref(); diff --git a/src/fb-bindings-fbresult.cc b/src/fb-bindings-fbresult.cc index ad0849c..8231065 100644 --- a/src/fb-bindings-fbresult.cc +++ b/src/fb-bindings-fbresult.cc @@ -555,18 +555,14 @@ Local FBResult::getCurrentRow(bool asObject) { short i, num_cols; -// XSQLDA *sqlda; - -// sqlda = sqldap; - - num_cols = sqldap->sqld; - - + HandleScope scope; Local js_result_row; Local js_field; -// if(!sqldap){ return scope.Close(js_result_row);} + if(!sqldap) num_cols = 0; + else num_cols = sqldap->sqld; + if(asObject) js_result_row = Object::New();