2017-02-14 5 views
0

Ich verwende den JDBC Treiber, um eine Verbindung zu meiner Datenbank herzustellen (die mit einem DBMS namens SQLBase von der Firma Centura Gupta erstellt wurde).So überprüfen Sie, ob die Verbindung freigegeben wurde

Es wird ohne Probleme ausgeführt (sogar ich überprüft, dass die Daten in meine Datenbank eingefügt werden).

Aber dann ausführen Ich habe eine sehr einfache SELECT-Anweisung und ich bekomme diese Fehlermeldung:

TypeError: Cannot read property 'createStatement' of undefined 
    at /var/apis/api.test/connections/sqlbase.dposs1.js:86:25 
    at JDBC.Pool.reserve (/var/apis/api.test/node_modules/jdbc/lib/pool.js:192:5) 
    at Object.getCenturaQuery (/var/apis/api.test/connections/sqlbase.dposs1.js:79:15) 
    at Object.verificarPagos (/var/apis/api.test/app/bancos/bancos.model.js:146:20) 
    at getFacturas (/var/apis/api.test/app/bancos/bancos.rutas.js:7:18) 
    at Layer.handle [as handle_request] (/var/apis/api.test/node_modules/express/lib/router/layer.js:95:5) 
    at next (/var/apis/api.test/node_modules/express/lib/router/route.js:131:13) 
    at Route.dispatch (/var/apis/api.test/node_modules/express/lib/router/route.js:112:3) 
    at Layer.handle [as handle_request] (/var/apis/api.test/node_modules/express/lib/router/layer.js:95:5) 
    at /var/apis/api.test/node_modules/express/lib/router/index.js:277:22 

Ich denke, dass die Freigabeerklärung nicht korrekt ausgeführt wurde.

Ich benutze diesen Code, den ich hier gesehen: https://www.npmjs.com/package/jdbc

myConnection.release(connObj, function(err) { 
    if (err) { 
     console.log(err.message); 
    } 
}); 

Nach Freigabe Ich habe immer noch dieses JSON Verbindungsobjekt (ich glaube, es should't mehr existiert, aber es besteht immer noch):

{ 
    "uuid": "30271a1a-db99-4ff2-8b6a-5befcbe8fbb4", 
    "conn": { 
     "_conn": { 
      "warnings": null 
     }, 
     "_txniso": [ 
      "TRANSACTION_NONE", 
      "TRANSACTION_READ_UNCOMMITTED", 
      "TRANSACTION_READ_COMMITTED", 
      null, 
      "TRANSACTION_REPEATABLE_READ", 
      null, 
      null, 
      null, 
      "TRANSACTION_SERIALIZABLE" 
     ] 
    }, 
    "keepalive": false 
} 

Wie kann ich überprüfen, ob die Verbindung erfolgreich vor dem Ausführen einer SELECT-Anweisung freigegeben wurde?

Ich denke, das Problem ist um dieses JSON-Verbindungsobjekt.

Vielleicht hilft es: Ich entwickle mit JavaScript und NodeJS auf der Serverseite.

Antwort

0

Ich bin keine JavaScript-Person - aber ich bin eine Gupta SQLBase-Person, und Logik sagt mir, dass Sie eine 'Select' nicht ausführen können, wenn Sie das Handle (Verbindung) freigegeben haben. Normalerweise aus eigenen Toolset Gupta, Sie in dieser Reihenfolge durchführen würde: 1) Schließen Sie einen Griff 2) (optional), um die Isolationsstufe auf entweder ‚Verschlüsse‘ oder ‚Read Committed 1, 2 oder 3' . 3) die Update Führen Sie den gleichen 4)Führen Sie einen Commit mit dem gleichen Griff 5) Run a Wählen Sie mit dem gleichen Griff 6) (Optional) Lassen Sie den Griff Griff mit (oder es wiederverwenden)

Entschuldigung, wenn ich die Funktionsweise von JavaScript missverstanden habe - kann nur auf die Art und Weise, wie Gupta funktioniert, beraten.

Verwandte Themen