Skip to content

Commit 0fc256e

Browse files
committed
fixed bug nuintun#2
1 parent 151f22c commit 0fc256e

File tree

3 files changed

+31
-22
lines changed

3 files changed

+31
-22
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -216,3 +216,6 @@ pip-log.txt
216216

217217
#node modules
218218
node_modules
219+
220+
#WebStorm
221+
.idea

lib/adodb.js

Lines changed: 27 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ var JSON = (function (){
1818
'\\': '\\\\'
1919
};
2020

21-
// string quote
21+
// String quote
2222
function quote(string){
2323
escapable.lastIndex = 0;
2424
return escapable.test(string) ? '"' + string.replace(escapable, function (a){
@@ -108,7 +108,7 @@ var JSON = (function (){
108108
}
109109
}
110110

111-
// stringify method
111+
// Stringify method
112112
JSON.stringify = function (value, replacer, space){
113113
var i;
114114
gap = '';
@@ -125,14 +125,14 @@ var JSON = (function (){
125125
rep = replacer;
126126
if (replacer && typeof replacer !== 'function' &&
127127
(typeof replacer !== 'object' ||
128-
typeof replacer.length !== 'number')) {
128+
typeof replacer.length !== 'number')) {
129129
throw new Error('JSON.stringify');
130130
}
131131

132-
return str('', {'': value});
132+
return str('', { '': value });
133133
};
134134

135-
// parse method
135+
// Parse method
136136
JSON.parse = function (text, reviver){
137137
var j;
138138

@@ -164,14 +164,14 @@ var JSON = (function (){
164164
}
165165

166166
if (/^[\],:{}\s]*$/
167-
.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
168-
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
169-
.replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
167+
.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
168+
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
169+
.replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
170170

171171
j = eval('(' + text + ')');
172172

173173
return typeof reviver === 'function'
174-
? walk({'': j}, '')
174+
? walk({ '': j }, '')
175175
: j;
176176
}
177177

@@ -184,6 +184,7 @@ var JSON = (function (){
184184
/**
185185
* 64位字符解码
186186
* http://blog.csdn.net/cuixiping/article/details/409468
187+
* @private
187188
* @param base64
188189
* @returns {*}
189190
*/
@@ -207,7 +208,7 @@ function base64Decode(base64){
207208
stream = null;
208209
adostream = null;
209210
xmldom = null;
210-
211+
211212
return result;
212213
}
213214

@@ -231,10 +232,13 @@ var ADODB = {
231232
try {
232233
connection.Open(params.connection);
233234
connection.Execute(params.query);
234-
connection = null;
235235
} catch (e) {
236236
valid = false;
237237
message = e.message;
238+
} finally {
239+
// 关闭数据库链接,不管有没有操作成功
240+
connection.Close();
241+
connection = null;
238242
}
239243

240244
stdout({
@@ -243,16 +247,14 @@ var ADODB = {
243247
});
244248
},
245249
query: function (params){
246-
var valid = true, records = [],
250+
var enumer, fields = [],
251+
valid = true, records = [],
247252
message = 'Execute SQL: ' + params.query + ' Success !',
248-
connection = new ActiveXObject('ADODB.Connection');
253+
connection = new ActiveXObject('ADODB.Connection'),
254+
recordset = new ActiveXObject('ADODB.Recordset');
249255

250256
try {
251257
connection.Open(params.connection);
252-
var enumer,
253-
fields = [],
254-
recordset = new ActiveXObject('ADODB.Recordset');
255-
256258
recordset.Open(params.query, connection);
257259
enumer = new Enumerator(recordset.Fields);
258260

@@ -264,6 +266,7 @@ var ADODB = {
264266
}
265267

266268
recordset.MoveFirst();
269+
267270
while (!recordset.EOF) {
268271
var item = {};
269272
for (var i = 0; i < fields.length; i++) {
@@ -274,13 +277,16 @@ var ADODB = {
274277
recordset.MoveNext();
275278
}
276279
}
277-
278-
recordset.Close();
279-
recordset = null;
280-
connection = null;
281280
} catch (e) {
282281
valid = false;
283282
message = e.message;
283+
} finally {
284+
// 关闭数据库链接,不管有没有操作成功
285+
recordset.Close();
286+
connection.Close();
287+
enumer = null;
288+
recordset = null;
289+
connection = null;
284290
}
285291

286292
stdout({

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "node-adodb",
3-
"version": "1.0.3",
3+
"version": "1.1.0",
44
"main": "index.js",
55
"license": "MIT",
66
"keywords": [

0 commit comments

Comments
 (0)