Esempio n. 1
0
 var request = new tedious.Request(sql.GetBookDetails, function (err, rc, rows) {
     if (err) {
         console.log(err);
         res.status(500).send("database error");
         connection.close();
         return;
     }
     if (!rc) {
         res.status(404).send("book not found");
         connection.close();
         return;
     }
     var book = {
         id: rows[0].ID.value,
         title: rows[0].Title.value,
         author: rows[0].Author.value,
         authorId: rows[0].AuthorID.value,
         nominations: []
     };
     book.nominations = rows.slice(1).map(function (row) {
         return {
             awardId: row.AwardID.value,
             yearNominated: row.YearNominated.value,
             isWinner: !!row.IsWinner.value
         };
     });
     res.json(book);
     connection.close();
 });
router.post('/', function (req, res) {
    var managers = new Managers.Managers();
    var userId = req.body.userId;
    var apiKey = req.body.apiKey;
    var username = req.body.username;
    var password = req.body.password;
    var depot = req.body.depot;
    var createUsers = req.body.createUsers;
    console.log('LOGIN PARAMS: %s, %s, %s, %s', username, password, depot);
    if (username == "")
        res.status(500).send();
    if (password == "")
        res.status(500).send();
    if (depot == "")
        res.status(500).send();
    var connection = new Connection(managers.dbManager.generateTediousConfig());
    connection.on('connect', function (err) {
        // If no error, then good to proceed.
        if (err) {
            console.log('ERROR: %s', err);
            res.status(500).send("Error");
        }
        else {
            console.log("Connected");
            executeStatement(res);
        }
    });
    function executeStatement(res) {
        managers.dbManager.allowRequest(userId, apiKey, function (authorised) {
            if (!authorised) {
                res.status(500).send();
            }
            else {
                bcrypt.hash(password, 8, function (err, hash) {
                    if (!err) {
                        var request = new Request('[dbo].[CreateNewUser]', function (err, rowCount) {
                            console.log('RC: ' + rowCount);
                            if (err) {
                                console.log(err);
                                res.status(500).send();
                            }
                            else {
                                connection.close();
                                res.status(200).send();
                            }
                        });
                        request.addParameter('UserId', TYPES.NVarChar, username);
                        request.addParameter('Password', TYPES.NVarChar, hash);
                        request.addParameter('Depot', TYPES.NVarChar, depot);
                        request.addParameter('CreatedOn', TYPES.DateTime, new Date());
                        request.addParameter('ApiKey', TYPES.NVarChar, Guid.raw());
                        request.addParameter('ServerKey', TYPES.NVarChar, Guid.raw());
                        request.addParameter('CreateUsers', TYPES.Bit, createUsers);
                        connection.callProcedure(request);
                    }
                });
            }
        });
    }
});
Esempio n. 3
0
router.get('/', function(req, res, next) {
	var Connection = require("tedious").Connection;
	var config = {
		userName:"******",
		password:"******",
		server:"10.4.30.40",				
		options:{encrypt:false,database:"st_rvc7",}
	}
	var cnn = new Connection(config);
	cnn.on("connect",function(err){
		if (err){
			console.log(err);
			return;
		}
		var Request = require("tedious").Request;
		var request = new Request("select * from dbo.service",function(err,rowCount){

		});
		request.on('row',function(columns){			

			columns.forEach(function(column){
				console.log(column.value);
			});
			//res.json(columns);
		});
		cnn.execSql(request);
	})
	res.render('index', { title: 'Express' });
});
Esempio n. 4
0
 AzureSqlClient.prototype.retrieve = function (partitionKey, rowKey, callback) {
     var _this = this;
     var client = new tedious_1.Connection(this.options);
     client.on('connect', function (error) {
         if (error) {
             callback(AzureSqlClient.getError(error), null, null);
         }
         else {
             var request = new tedious_1.Request("SELECT TOP 1 * FROM " + _this.options.options.table + " WHERE id=@id", function (err, rowCount, rows) {
                 if (err) {
                     client.close();
                     callback(AzureSqlClient.getError(err), null, null);
                 }
                 else if (!rowCount) {
                     client.close();
                     callback(null, null, null);
                 }
                 else {
                     client.close();
                     var row = rows[0];
                     callback(null, row, rows[0]);
                 }
             });
             var id = partitionKey + ',' + rowKey;
             AzureSqlClient.addParameters(request, id);
             client.execSql(request);
         }
     });
 };
    it('Name Collision', function () {
        assert(!Connection.prototype.release);

        var con = new Connection({});
        assert(!con.pool);
        con.close();
    });
Esempio n. 6
0
var server = http.createServer(function(request, response) {

	//client.trackRequest(req, res);
	
	response.writeHead(200, {"Content-Type": "text/plain"});
	
	var url_parts = url.parse(request.url, true);
	var query = url_parts.query;
	
	config.password = query.pass;
	rcv_msg = query.message;
	
	connection = new Connection(config);
	
	self = this;
	self._response = response;
	
	// Attempt to connect and execute queries if connection goes through
	connection.on('connect', function(err) {
		if (err) {
			console.log(err)
		}
		else{
			insertIntoDatabase(rcv_msg);
		}
	});
	
    

});
Esempio n. 7
0
            fs.readFile('time.txt', function (err, data) {
                if (err) throw err;
                console.log(data.toString());

                last_read_time = new Date(Date.parse(data.toString()));

                if(last_read_time < device.record_time)
                {   // время предыдущего чтения меньше - значит есть новая архивная запись
                    last_read_time = device.record_time;

                    fs.writeFile('time.txt', device.record_time.toString(), function (err) {
                        if (err) throw err;
                        console.log('It\'s saved!');
                    });

                    // сокет закрыли данные есть - можно вносить в базу
                    var connection = new Connection(config);

                    connection.on('connect', function(err) {
                            // If no error, then good to go...
                            executeStatement(connection,device);
                        }
                    );

                    connection.on('debug', function(text) {
                            console.log(text);
                        }
                    );
                };
            });
Esempio n. 8
0
 var request = new tedious.Request(sql.GetAuthorDetails, function (err, rc, rows) {
     if (err) {
         console.log(err);
         res.status(500).send("database error");
         connection.close();
         return;
     }
     if (!rc) {
         res.status(404).send("author not found");
         connection.close();
         return;
     }
     var author = {
         id: rows[0].ID.value,
         name: rows[0].Name.value,
         books: []
     };
     author.books = rows.slice(1).map(function (row) {
         return {
             id: row.ID.value,
             title: row.Title.value
         };
     });
     res.json(author);
     connection.close();
 });
Esempio n. 9
0
  var connect = function(done, config) {
    config = config || this.config
    var connection = new tedious.Connection({
      server: config.host,
      userName: config.username,
      password: config.password,
      options: {
        port: config.port,
        database: config.database
      }
    });
    var log = function(msg){ if (config.log) {config.log(msg)}};

    //connection.on('debug', log)
    connection.on('infoMessage', log)
    connection.on('errorMessage', console.error)

    connection.on('connect', function(err){
      this.isConnecting = false
      if (config.pool.handleDisconnects) {
        handleDisconnect(this.pool, connection)
      }
       done(err, connection);
    });
  }
Esempio n. 10
0
	    openSqlServer: function(config, sqlQuery, callback){
    		var connection = new Connection(config);
    		connection.on('connect', function(err) {
    				if(err){
    					console.log(err);
    					callback(err);
    					return;
    				}
    				runDbQuery();
    		    }
    		);
    		function runDbQuery() {
    			var results = [];
    			var request = new Request(sqlQuery, function(err, rowCount) {
    				if (err) {
    					console.log(err);
    			    } else {
    			    	callback(null, results);
    			    }
    			});

    			request.on('row', function(columns) {
    				var item = {};
    			    columns.forEach(function(column) {
    			    	item[column.metadata.colName] = column.value + '';
    			    });
    			    
    			    results.push(item);
    			});

    			connection.execSql(request);
    		}
	    }
Esempio n. 11
0
//---------------------------------------------------------- DATABASE--------------------------------------------------------------------
 function connectToDatabase(callback) { 
    if (client) {
        client.close();
    }
    // Prepare config
    var config = {  
        userName: username,  
        password: pass,  
        server: dbAddress,  
        options: {encrypt: true, database: dbName, rowCollectionOnDone: true}  
    };  
    // Create connection
    client = new Connection(config);  
    client.on('connect', function(err) {  
        if (err) {
            setStatus(statusEnum.error);
            node.error('Error: ' +JSON.stringify(err));
            node.log('Error: ' +JSON.stringify(err));
        } else {
            node.log("Connected");
            setStatus(statusEnum.connect);
            callback();
        }
    });
 }
Esempio n. 12
0
	executeQuery : function(stmt, callback){
		console.log(now(), 'SQL Started');
		var connection = new Connection(config);
		var results = [];
		connection.on("connect", function(){
			var request = new Request(stmt, function(err, rowCount){
				if(err){ console.log('SQL Error:', err); }
				callback(results, err, rowCount);
				console.log(now(), 'SQL Ended');
			});
			request.on("row", function(columns){
				var row = {};
				columns.forEach(function(column){
					if (column.isNull){
						row[column.metadata.colName] = null;
					}else{
						row[column.metadata.colName] = column.value;
					}
				});
				//agrega al results cada valor obtenido
				results.push(row); 
			});
			this.execSql(request);
		});
	}
Esempio n. 13
0
router.post('/deactivate', function(req, res) {
    var id = req.body.id;

    // connect database
    var connection = new Connection(config);
    connection.on('connect', function(err) {
        // If no error, then good to proceed.
        console.log("Connected");
        executeStatement();
    });

    // execute a query
    var Request = require('tedious').Request;

    function executeStatement() {
        request = new Request(`UPDATE [LVS].[User] SET [active] = 0 WHERE id = '${id}';`, function(err) {
            if (err) {
                console.log("err: " + err);
                res.json({error: err});
            } else {
                res.json({success: "User deactivated successfully!"});
                console.log("User deactivated successfully!");
            }
        });
       
        request.on('done', function(rowCount, more) {
            console.log(rowCount + ' rows returned');
        });
        connection.execSql(request);
    }
});
Esempio n. 14
0
function executeQuery(query, callback) {
  var connection = new Connection(config);
  var result = null;

  connection.on('connect', function(err) {
    if (err) {
      callback(err, null);
      return;
    }
      
    var request = new Request(query, function(err, rowCount, rows) {
      if (err) {
        callback(err, null);
      } else {
        // sanitize rows to result
        result = [];
        rows.forEach(function(row) {
          var resultItem = {}
          row.forEach(function(column) {
            resultItem[column.metadata.colName] = column.value
          });
          result.push(resultItem);
        });
        
        callback(null, result);
      }
      connection.close();
    });

    connection.execSql(request);
  }); 
}
Esempio n. 15
0
module.exports = function (req, res) {

    var config = {
        userName: '******',
        password: '******',
        server: 'xxxx',
        connectionTimeout: 300000,
        requestTimeout: 300000,
        options: {
            port: 'xxxx',
            database: 'xxxx.MDF',
        },
        pool: {
            idleTimeoutMillis: 300000,
            max: 100
        }
    }

    var connection = new Connection(config);

    connection.on('connect', function (err) {
        if (err) {
            console.log('error : ' + err);
            return;
        }

        console.log("Connected");
        executeStatement(connection, req, res);
    });
}
Esempio n. 16
0
 AzureSqlClient.prototype.initialize = function (callback) {
     var _this = this;
     var client = new tedious_1.Connection(this.options);
     client.on('connect', function (error) {
         if (error) {
             callback(AzureSqlClient.getError(error));
         }
         else {
             var checkTableRequest = new tedious_1.Request("IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.Tables WHERE TABLE_NAME = N'" + _this.options.options.table + "') BEGIN SELECT TOP 1 * FROM " + _this.options.options.table + " END", function (error, rowCount, rows) {
                 if (error) {
                     client.close();
                     callback(AzureSqlClient.getError(error));
                 }
                 else if (!rowCount) {
                     var createTableRequest = new tedious_1.Request("CREATE TABLE " + _this.options.options.table + " (id NVARCHAR(200), data NVARCHAR(1000), isCompressed BIT)", function (error, rowCount, rows) {
                         client.close();
                         callback(AzureSqlClient.getError(error));
                     });
                     client.execSql(createTableRequest);
                 }
                 else {
                     client.close();
                     callback(null);
                 }
             });
             client.execSql(checkTableRequest);
         }
     });
 };
Esempio n. 17
0
app.get("/api/authors/:author", function (req, res) {
    var authorId = req.params.author;
    var connection = new tedious.Connection(config);
    connection.on('connect', function (err) {
        var request = new tedious.Request(sql.GetAuthorDetails, function (err, rc, rows) {
            if (err) {
                console.log(err);
                res.status(500).send("database error");
                connection.close();
                return;
            }
            if (!rc) {
                res.status(404).send("author not found");
                connection.close();
                return;
            }
            var author = {
                id: rows[0].ID.value,
                name: rows[0].Name.value,
                books: []
            };
            author.books = rows.slice(1).map(function (row) {
                return {
                    id: row.ID.value,
                    title: row.Title.value
                };
            });
            res.json(author);
            connection.close();
        });
        request.addParameter("authorId", tedious.TYPES.Int, authorId);
        connection.execSql(request);
    });
});
router.get('/', function (req, res, next) {
    var userId = req.get('userId');
    var apiKey = req.get('apiKey');
    var refresh = req.get('refresh');
    console.log('PARAMS: %s, %s, %s', userId, apiKey, refresh);
    var managers = new Managers.Managers();
    var connection = new Connection(managers.dbManager.generateTediousConfig());
    connection.on('connect', function (err) {
        // If no error, then good to proceed.
        if (err) {
            console.log('ERROR: %s', err);
            res.status(500).send();
        }
        else {
            console.log("Connected");
            executeStatement(res);
        }
    });
    connection.on('end', function () { console.log('Db Disconnected'); });
    function executeStatement(res) {
        managers.dbManager.allowRequest(userId, apiKey, function (authorised) {
            if (!authorised) {
                res.status(500).send();
            }
            else {
                var result = [];
                var request = new Request("\n                        SELECT CD.Id, CD.DeviceId, CD.UserId, CD.RouteId, CD.LastConnected, PD.IsPilot\n                        FROM dbo.ConnectedDevices CD\n                        LEFT JOIN [dbo].[PilotDevices] PD ON CD.DeviceId = PD.DeviceId\n                        WHERE CD.LastConnected > CAST(GETDATE() AS DATE);\n                    ", function (err, rowCount) {
                    if (err) {
                        console.log(err);
                        res.status(500).send("Error");
                    }
                    else {
                        console.log('Complete: %s row(s) returned', rowCount);
                        connection.close();
                        res.setHeader('content-type', 'application/x-www-form-urlencoded');
                        res.setHeader('Access-Control-Allow-Origin', '*');
                        res.status(200).send(result);
                    }
                });
                request.on('row', function (columns) {
                    var row = {};
                    columns.forEach(function (column) {
                        if (column.value === null) {
                            console.log('NULL');
                        }
                        else {
                            row[column.metadata.colName] = column.value;
                        }
                    });
                    result.push(row);
                });
                request.on('done', function (rowCount, more) {
                    console.log(rowCount + ' rows returned');
                });
                connection.execSql(request);
            }
        });
    }
});
 function(callback) {
   log.debug('Connecting to SQL server %s%s and database %s', credential.sqlServerName, serverSuffix, credential.sqldbName);
   connection = new Connection(config);
   connection.on('connect', function(err) {
     var message = 'The SQL Database can %sbe connected.';
     nextStep(err, message, callback);
   });
 },
Esempio n. 20
0
function createConnection(finished) {
    var connection = new tedious.Connection(config);
    connection.on('debug', function(text) {
        //console.log("connection debug:",text);
      });
    connection.on('connect',function(err) {
        finished(err,connection)
    });
}
Esempio n. 21
0
 var insertRequest = new tedious_1.Request("INSERT INTO " + _this.options.options.table + " (id, data, isCompressed) VALUES (@id, @data, @isCompressed)", function (error, rowCount, rows) {
     if (error) {
         client.close();
         callback(AzureSqlClient.getError(error), null, null);
     }
     else {
         client.close();
         callback(null, rows[0], rows[0]);
     }
 });
Esempio n. 22
0
function createConnection(config) {
  SqlConnection = new Connection(config);
  SqlConnection.on('connect', function(err) {
    console.log("Connected to Azure Database");
  });

  SqlConnection.on('end', function() {
    console.log('Failure in connection to database: ' + config.server);
  });
}
Esempio n. 23
0
 var updateRequest = new tedious_1.Request("UPDATE " + _this.options.options.table + " SET data=@data, isCompressed=@isCompressed WHERE id=@id", function (error, rowCount, rows) {
     if (error) {
         client.close();
         callback(AzureSqlClient.getError(error), null, null);
     }
     else {
         client.close();
         callback(null, rows[0], rows[0]);
     }
 });
Esempio n. 24
0
var executeQueries = function(host, port, user, password, db, queries, options, cb) {
	var isAzure = (options && options.isAzure) ? true : false;
	var config = {
		server: host,
		userName: user,
		password: password,
		options: {
			port: port || 1433,
			database: db,
			readOnlyIntent: true,
			useColumnNames: true,
			encrypt: (options && options.isAzure) ? true : false,
			requestTimeout: 0
		}
	};
	var connection = new Connection(config);
	connection.on('connect', function(err) {
		if(err) return cb(err);

		var result = [];

		async.eachSeries(queries, function(query, callback) {
			var queryResult = {
				columns: [],
				rows: []
			};

			request = new Request(query, function(err){
				if(err) 
					result.push(new Error(err));
				else
					result.push(queryResult);
				
				return callback();
			});

			request.on('columnMetadata', function (columns) {
				queryResult.columns = Object.keys(columns);
			});

			request.on('row', function (columns) {
				var row = [];
				for(var column in columns) row.push(columns[column].value);
				queryResult.rows.push(row);
			});

			connection.execSql(request);

		}, function() {
			connection.close();
			return cb(null, result);
		});
		
	});
};
Esempio n. 25
0
 .addSource('msDb', function(options){
       var stream = streamler.through2.call(this),
           connection = new Connection({
             userName: '******',
             password: '******',
             server: 'qa-auto-ui-db01.devid.local',
             connectTimeout: 3000
           });
       connection.on('connect', function(err) {
         if (err) {
           console.error('Received error', err);
           if(options.defaults && options.defaults.length){
             options.defaults.forEach(function(item){
               stream.emit("data", item);
             })
           }else if( options.defaults ){
             stream.emit("data", options.defaults);                
           }
           stream.emit("end");
         } else {
           var request = new Request(options.query, function(err, rowCount) {
             if (err) {
               console.log(err + 'for query: '+ options.query);
               process.exit();
             } else {
               console.log(rowCount + ' rows for query: '+ options.query);
             }
           });
           request.on('row', function(columns) {
             var emitme;
             switch(options.columns){
               case "singleValue":
                 emitme = columns[0].value;
               break;
               case "columnValues":
                 emitme = [];
                 columns.forEach(function(item){
                   emitme.push(item.value);
                 })
               break;
               default:
                 emitme = columns;
               break;
             }
             stream.emit("data", emitme );
           });
           request.on('doneProc', function(){
             stream.emit("end");
             process.nextTick( connection.close.bind(connection) );
           });
           connection.execSql(request);
         };
       });
       return stream;
 });
Esempio n. 26
0
router.get('/:id', function(req, res) {
	var id = req.params.id;

	// connect database
	var connection = new Connection(config);
	connection.on('connect', function(err) {
		// If no error, then good to proceed.
	    console.log("Connected");
	    executeStatement();
	});

	// execute a query
	var Request = require('tedious').Request;
	var TYPES = require('tedious').TYPES;

	function executeStatement() {
	    request = new Request(`SELECT * FROM [LVS].[Announcement] AS announcementInfo WHERE announcementInfo.id = ${id}`, function(err) {
	        if (err) {
	            console.log("err: " + err);}
	    });

	    var resultTotal = [];

	    var promise = new Promise(function(resolve, reject) {
			
	    	request.on('row', function(columns) {

	    		var group = {};

		        columns
		        	.map(function(row) {

		        		announcement[row.metadata.colName] = row.value;
		        		if (announcement.id === row.value) {
                            resultTotal.push(announcement);
		        		}
		        		
			    	});

		    	resolve(resultTotal);	
		    });

	    });

	    promise.then(function(result) {
	    	res.json(result);
	    })
	   
	    request.on('done', function(rowCount, more) {
	        console.log(rowCount + ' rows returned');
	    });
	    connection.execSql(request);
	}
	
});
Esempio n. 27
0
router.get('/', function(req, res) {
	// connect database
	var connection = new Connection(config);
	connection.on('connect', function(err) {
		// If no error, then good to proceed.
	    console.log("Connected");
	    executeStatement();
	});

	// execute a query
	var Request = require('tedious').Request;
	var TYPES = require('tedious').TYPES;

	function executeStatement() {
	    request = new Request(`SELECT [LVS].[Announcement].*, [LVS].[User].first_name, [LVS].[User].last_name 
									FROM [LVS].[Announcement]
									LEFT JOIN [LVS].[User] ON [LVS].[Announcement].author = [LVS].[User].id
	    						`, function(err) {
	        if (err) {
	            console.log("err: " + err);}
	    });

	    var resultTotal = [];

	    var promise = new Promise(function(resolve, reject) {
			
	    	request.on('row', function(columns) {

	    		var announcement = {};

		        columns
		        	.map(function(row) {

		        		announcement[row.metadata.colName] = row.value;
		        		if (announcement.id === row.value) {
                            resultTotal.push(announcement);
		        		}
		        		
			    	});

		    	resolve(resultTotal);	
		    });

	    });

	    promise.then(function(result) {
	    	res.json(result);
	    })
	   
	    request.on('done', function(rowCount, more) {
	        console.log(rowCount + ' rows returned');
	    });
	    connection.execSql(request);
	}
});
Esempio n. 28
0
    connect: function (callback) {
	conn = new tedious.Connection(config.db);

	conn.on('connect', function (err) {
	    if (err) return callback(err);
	    callback(null);
	});

	// conn.on('debug', function(msg) {
	//     console.log('[DEBUG]', msg)
	// });
    },
Esempio n. 29
0
	function initSQLEXPRESS(callback) {
		// Initialize SQLEXPRESS
		try {
			var connConfig = config.sqlConnection;
			var conn = new tedious.Connection(connConfig)
			conn.on('connect', function(err) {
				callback(err, conn);
			})
		} catch (e) {
			err = new Error('Failed to connect SQLEXPRESS.\n' + e);
			callback(err);
		}
	}
Esempio n. 30
0
TediousPromise.prototype._createConnection = function() {
  // TODO: Transaction support - if transaction, resolve with transaction's connection
  var deferred = q.defer();

  if(this._connection) { // existing connection found
     deferred.resolve(this._connection);
  } else {
    if(this._mode === 'mock') {
        return q(new MockTediousConnection(this));

    } else if(this._mode === 'pool') {
        // get from pool
        this._connectionPool.acquire(function (err, connection) {
        try {
            if (err) {
            connection.release();
            deferred.reject(err);
            } else {
            enableDebugLogging(connection);
            deferred.resolve(connection);
            }
        } catch(e) {
            deferred.reject(e);
        }
        });

    } else if (this._mode === 'single') {
        // create new connection
        var connection = new Connection(this._connectionConfig);

        connection.on('connect', function(err) {
        try {
            if (err) {
            connection.close();
            deferred.reject(err);
            } else {
            enableDebugLogging(connection);
            deferred.resolve(connection);
            }
        } catch(e) {
            deferred.reject(e);
        }
        });

    } else {
        throw new Error('Create connection not implemented for mode: ' + this._mode + '.');
    }
  }

  return deferred.promise;
};