Guest User

Untitled

a guest
Nov 16th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. const Connection = require('tedious').Connection;
  2. const Request = require('tedious').Request;
  3. const TYPES = require('tedious').TYPES
  4.  
  5. // Azure SQL Database に接続する
  6. async function ConnectDataBase(config) {
  7. return new Promise((resolve, reject) => {
  8. const connection = new Connection(config);
  9. connection.on('connect', function(err) {
  10. if (err) {
  11. reject(err);
  12. }
  13. resolve(connection);
  14. });
  15. });
  16. }
  17.  
  18. // SQLを実行して結果セットを取得する
  19. async function getRows(connection, sql, params) {
  20. return new Promise((resolve, reject) => {
  21. const result = [];
  22. const request = new Request(sql, function(err, rows) {
  23. if (err) {
  24. reject(err);
  25. }
  26. resolve(result);
  27. });
  28. if (Array.isArray(params)) {
  29. for (const p of params) {
  30. request.addParameter(p.name, p.dataType, p.value);
  31. }
  32. }
  33. request.on('row', function(columns) {
  34. result.push(columns);
  35. });
  36. connection.execSql(request);
  37. });
  38. }
  39.  
  40. (async () => {
  41. const config = {
  42. server:'DB_HOST',
  43. userName:'DB_USER',
  44. password:'DB_PASSS',
  45. options:{
  46. database:'DB_CATALOG',
  47. encrypt:true
  48. }
  49. };
  50. try {
  51. const cn = await ConnectDataBase(config);
  52. try {
  53. const sql = 'SELECT TOP 10 Name FROM test_table WHERE Name like @Name';
  54. const params = [ { name: 'Name', dataType: TYPES.NVarChar, value: '%Foo%' } ];
  55. for (const row of await getRows(cn, sql, params)) {
  56. console.log(row[0].value);
  57. }
  58. }
  59. finally {
  60. cn.close();
  61. }
  62. }
  63. catch (e) {
  64. console.log(`Error!! ${e.message}`);
  65. }
  66. })();
Add Comment
Please, Sign In to add comment