Advertisement
Guest User

Untitled

a guest
Mar 19th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1. var Connection = require('tedious').Connection;
  2. var config = {
  3. userName: 'my_user_name',
  4. password: 'my_password',
  5. server: 'server_to_access',
  6. database: 'database_in_SQL_Server_Management_Studio'
  7. };
  8. var connection = new Connection(config);
  9. connection.on('connect', function(err) {
  10. console.log("Connected");
  11. });
  12.  
  13. var Connection = require('tedious').Connection;
  14. var Request = require('tedious').Request;
  15.  
  16.  
  17.  
  18. var config = {
  19. userName: 'my_user_name',
  20. password: 'my_password',
  21. server: 'server_to_access',
  22. database: 'database_in_SQL_Server_Management_Studio'
  23. };
  24. var connection = new Connection(config);
  25. connection.on('connect', function(err) {
  26. console.log("Connected");
  27. executeStatement();
  28. });
  29.  
  30. function executeStatement() {
  31. request = new Request("SELECT * FROM Employees", function(err, rowCount) {
  32. if (err) {
  33. console.log(err);
  34. } else {
  35. console.log(rowCount + ' rows');
  36. }
  37. });
  38.  
  39. request.on('row', function(columns) {
  40. columns.forEach(function(column) {
  41. console.log(column.value);
  42. });
  43. });
  44. connection.execSql(request);
  45. }
  46.  
  47. C:Usersnameattempt>node test.js
  48. Connected
  49. { [RequestError: Requests can only be made in the LoggedIn state, not the Connec
  50. ting state]
  51. message: 'Requests can only be made in the LoggedIn state, not the Connecting
  52. state',
  53. code: 'EINVALIDSTATE' }
  54.  
  55. C:Usersnameattempt>
  56.  
  57. connection.on('connect', (err)=>{ RequestWrapper.next(err); });
  58.  
  59. const queue = [];
  60.  
  61. class RequestWrapper(){
  62. constructor(sql){ this.sql = sql; }
  63. static next(err){
  64. const next = queue.shift();
  65. if(next) next(err);
  66. }
  67. queue(args){
  68. return new Promise((ok, fail)=>{
  69. queue.push((err)=>{
  70. if(err) fail(err); else ok(this.request(args));
  71. })
  72. })
  73. }
  74. request(args){
  75. if(!connection) return Promise.reject(new Error(`connection required`));
  76. if(!connection.loggedIn || connection.state.name !== 'LoggedIn') return this.queue(args);
  77.  
  78. return new Promise((ok, fail)=>{
  79. try{
  80. const request = new tedious.Request(this.sql, (err, count, rows)=>{
  81.  
  82. RequestWrapper.next();
  83.  
  84. if(err) return fail(err);
  85. ok(rows);
  86. });
  87. ...add params here...
  88. connection.execSql(request);
  89. }catch(err){
  90. RequestWrapper.next();
  91. fail(err);
  92. }
  93. });
  94. }
  95. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement