如何在 SQL Server 中循环插入多条数据?使用 Node JS 乏味

2024-02-04

我有一个 Node JS 项目,它从数组中获取数据data2,使用此数据创建一个对象myObject使用来自 API 的数据获取let url = `https:...然后将其保存到 SQL Server 中的数据库中,我遇到的问题是我遵循MS Doc https://learn.microsoft.com/en-us/sql/connect/node-js/step-3-proof-of-concept-connecting-to-sql-using-node-js?view=sql-server-ver15插入数据,但正如我所说here https://stackoverflow.com/questions/70103081/how-can-i-insert-all-my-data-in-sql-using-nodejs-and-tediousMS doc的示例仅添加一个数据,所以我决定重新表述我的问题,如何更改它以插入我的所有数据? 以下是我的连接方式:

var connection = new Connection(config);

connection.on("connect", function (err) {
  if (err) {
    console.log("Failed to connect!!! ", err);
  } else {
    console.log("Successful connection");
    executeStatement1();
  }
});

这是我尝试在循环中插入多个数据的方法:

function executeStatement1() {
  const data2 = [
    {
      latjson: 21.1236,
      lonjson: -101.6737,
      idoficina: "1",
    },
    {
      latjson: 21.1236,
      lonjson: -101.6737,
      idoficina: "2",
    }
  ];

  for (let item of data2) {
    let url = `https://api.openweathermap.org/data/2.5/weather?lat=${item.latjson}&lon=${item.lonjson}&appid=${api_key}&units=metric&lang=sp`;
    fetch(url)
      .then((response) => { return response.json();})
      .then(function (data) {
        var myObject = {
          Id_Oficina: item.idoficina,
          Humedad: data.main.humidity,
          Nubes: data.clouds.all,
          Sensacion: data.main.feels_like,
          Temperatura: data.main.temp,
          Descripcion: data.weather[0].description,
        };
        const request = new Request(
          "EXEC USP_BI_CSL_insert_reg_RegistroTemperaturaXidOdicina @IdOficina, @Humedad, @Nubes, @Sensacion, @Temperatura, @Descripcion",
          function (err) {
            if (err) {
              console.log("No se pudo insertar dato: " + err);
            } else {
              console.log("Dato con id de Oficina: " + myObject.Id_Oficina + " insertado con éxito.")
            }
          }
        );
        request.addParameter("IdOficina", TYPES.SmallInt, myObject.Id_Oficina);
        request.addParameter("Humedad", TYPES.SmallInt, myObject.Humedad);
        request.addParameter("Nubes", TYPES.SmallInt, myObject.Nubes);
        request.addParameter("Sensacion", TYPES.Float, myObject.Sensacion);
        request.addParameter("Temperatura", TYPES.Float, myObject.Temperatura);
        request.addParameter("Descripcion", TYPES.VarChar, myObject.Descripcion);

        request.on("row", function (columns) {
          columns.forEach(function (column) {
            if (column.value === null) {
              console.log("NULL");
            } else {
              console.log("Product id of inserted item is " + column.value);
            }
          });
        });
        request.on("requestCompleted", function () {
          connection.close();
        });
        connection.execSql(request);
      });

  }
}

我遇到的问题是,当我的对象中只有一个对象时,上面的代码会完美插入数据data2数组,但是当我添加多个数组时,我收到以下错误消息:

Successful connection
Couldn't insert data: Error: Requests can only be made in the LoggedIn state, not the SentClientRequest state
Couldn't insert data: Error: Connection closed before request completed.

在这里,我展示了当我仅使用对象运行代码时,它可以工作:

正如我所说,我决定更改关闭连接的位置,但它也不起作用,只是将我的connection.close();在我的循环之后:

...
     columns.forEach(function (column) {
       if (column.value === null) {
          console.log("NULL");
          } else {
            console.log("Product id of inserted item is " + column.value);
          }
        });
      });
    });
  }
  request.on("requestCompleted", function () {
    connection.close();
  });
  connection.execSql(request);
}

我希望能够在数组中插入多个数据data2,如果可能的话,请解释一下为什么我的代码不起作用以及您更改了什么,谢谢!

编辑:我不会放弃哈哈,我继续搜索并在连接时观看:

connection.on("connect", function (err) {
  if (err) {
    console.log("Failed to connect!!! ", err);
  } else {
    console.log("Successful connection");
    executeStatement1();
  }
});

有人告诉我,我只会跑步executeStatement1();一次,所以它关闭连接,并且不会插入数组的其他部分,但是在循环中执行它会很好,对吗?我想知道关闭连接的正确方法。

我重新表述了我的问题here https://stackoverflow.com/questions/70358386/how-can-i-insert-multiple-times-data-in-sql-server-by-running-the-inserting-func如果您有时间的话,我将不胜感激。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 SQL Server 中循环插入多条数据?使用 Node JS 乏味 的相关文章

  • Cloud Functions for Firebase - 通过 Nodejs/Cloud Function 将多个 PDF 合并为一个

    我遇到了一个问题 我试图通过云功能合并一堆 PDF 然后将合并的 PDF 下载到用户的计算机上 我的提供程序中有一个函数 它调用云函数并传递指向 pdf 的 URL 数组 如下所示 mergePDFs pdfs Create array o
  • Kerberos 双跳

    我们遇到了臭名昭著的 Kerberos 双跳问题 这是一个全新的域 是从以前使用模拟和委派的另一个提供商迁移而来的 我们已将操作系统升级到最新的 SQL 服务器 2017 WPF 应用程序 使用域凭据 gt Web 服务 IIS 10 上的
  • 通过 JavaScript 获取表单名称

    我有一个简单的问题 但我在网上找不到好的解决方案 我有这个 HTML 代码
  • 如何在网站上使用 svg 元素制作块的屏幕截图?

    我在网站上创建了一个构造函数 其本质是将所选元素及其颜色 svg中的元素 添加到访问者选择的背景和背景颜色 png中的背景 中 然后必须单击 保存 结果 按钮并仅执行工作区的屏幕截图 我写了这个脚本 但它需要屏幕截图 但只有背景 并忽略选定
  • 按下回车键时不刷新页面

    我遇到了一些问题 只要表单中有输入 回车键就会触发页面刷新 下面的代码 如果按下回车并且文本区域 input 中没有输入任何文本 则不会刷新页面 但是如果按下回车并且 input中有输入或者光标位于文本区域 我不确定是什么触发了它 因为 s
  • ReactTransitionGroup 不适用于 React-redux 连接组件

    我正在开发一个更大的项目 但我创建了这个简短的示例来说明问题 如果我使用Box组件 它的工作原理 它在控制台中输出componentWillEnter and componentWillLeave当我们点击按钮时 如果我使用BoxConta
  • JavaScript 继承;调用和原型

    要在Javascript中实现继承 通常需要执行以下两个步骤 假设我有一个基类 Animal var Animal function name this name name 我现在想从中派生一个子类 Dog 所以我想说 var Dog fu
  • sql server 按组排名

    问题看似简单 但我却无法理解 这是针对 sql 服务器的 what I have in a table What I need as a output cksum id cksum id 2162514679 204 2162514679
  • 计算三次贝塞尔曲线的弧长、曲线长度。为什么不工作?

    我正在用这个算法计算弧长 三次贝塞尔曲线的长度 function getArcLength path var STEPS 1000 gt precision var t 1 STEPS var aX 0 var aY 0 var bX 0
  • IE 中的 XPath 查询使用从零开始的索引,但 W3C 规范是从一开始的。我应该如何处理差异?

    问题 我正在转换目前仅适用于 Internet Explorer 的相对较大的 Javascript 代码 以便使其也适用于其他浏览器 由于代码广泛使用 XPath 我们做了一些兼容性功能以使事情变得更容易 function selectN
  • onclick 事件中未调用函数

    我想在每个 YouTube 链接的末尾添加一些 HTML 以在 litebox 中打开播放器 到目前为止 这是我的代码 document ready function var valid url new RegExp youtube com
  • 如何在存储过程中实现 sql 搜索功能 (Sql Server 2008)

    我需要编写一个存储过程 该过程将使用 sql server 2008 根据可选参数搜索表 将会有两种模式 基本搜索模式 我们只传递一些文本 高级搜索模式 使用可选参数而不使用 SearchText 为了进行测试 我使用 AdventureW
  • 使用 Javascript 设置 cookie [重复]

    这个问题在这里已经有答案了 我正在尝试构建我的第一个移动应用程序 它需要连接到我的 mysql 数据库并使用 json 返回数据 这很好 目前我有一个登录系统 一旦确定用户名和密码存在 它就会返回一条成功消息 对于下一步 我想在我的页面上使
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 带有 npm 启动脚本的 Nodejs 应用程序

    我对nodejs很陌生 在我的docker化环境中 我想为nodejs应用程序提供appdynamics支持 这要求每个应用程序都要求将以下内容作为其应用程序的第一行 require appdynamics profile controll
  • Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [已关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对茉莉花有经验并且非常喜欢它 有谁有 Jasmine 和 Mocha 的经验 特别是 Rails 的经验吗 我想知道是否值得转用 我已经在 J
  • 在 SQL 数据库中存储“列表”的最正确方法是什么?

    因此 我读了很多关于如何将多个值存储到一个列中是一个坏主意 并且违反了数据标准化的第一条规则 令人惊讶的是 这不是 不要谈论数据标准化 所以我需要一些帮助 目前我正在为我工 作的地方设计一个 ASP NET 网页 我想根据此人所属的 Act
  • 使用 next.js 进行服务器端渲染与传统 SSR

    我非常习惯 SSR 意味着页面得到完全刷新并从服务器接收完整 HTML 的方法 其中根据后端堆栈使用 razor pub other 进行渲染 因此 每次用户单击导航链接时 它只会向服务器发送请求 整个页面将刷新 接收新的 HTML 这就是
  • 仅当显式选择行时才关闭 ui-bootstrap typeahead

    我创建了这个jsBin http jsbin com livuqafe 2 edit来证明我遇到的问题 如果您转到此处 请尝试输入 五 并继续 你的自然反应是输入 五 然后按 Tab 如果你想要 五百 你可以向下箭头一次 但是 在这种情况下
  • 探查器模板可以迁移到较新版本的 SQL Profiler 吗?

    是否可以将 Profiler 模板迁移到较新版本的 SQL Server 就我而言 我想将 SQL 2008 模板带到 2012 年 我尝试过 1 直接文件复制和 2 导出 导入 在这两种情况下 旧模板都会运行 但无法修改 修改后会出现以下

随机推荐

  • 如何跳过 x 轴上的标签?

    我已经尝试了很长一段时间来弄清楚如何跳过该图表 x 轴上的标签 例如 显示每第三个或第四个标签 我尝试将 autoSkip 和 stepSize 添加到刻度配置中 但没有任何变化 有没有一种简单的方法可以做到这一点 Edit visitor
  • 如何使用 JavaScript 检测我的浏览器版本和操作系统?

    我尝试使用下面的代码 但它只在 Chrome 和 Mozilla 中显示结果 在 IE6 中不起作用 div div
  • matplotlib 轴标签出现奇怪错误

    我对 Python 和一般编程都很陌生 所以如果我遗漏了一些明显的东西 请提前道歉 我正在尝试绘制图表并标记轴 但每次尝试标记 y 轴时都会引发异常 我在新脚本中编写了下面的代码 以确保问题不是来自模块中的其他地方 我正在使用Python
  • 未知目录的重写规则

    所以我试图获取 mod rewrite 规则来将请求重定向到带有 htaccess 文件的 php 脚本 问题是 我希望它能够工作 无论我将项目放在网络服务器上的哪个位置 htaccess 文件和 php 脚本始终位于同一文件夹中 重写本身
  • 读取 XMLStreamReader 时出错。获取故障响应

    我开发了一个应用程序 用户应该填写申请表并在最后付款 要付款 用户应在下面给出的链接中填写详细信息 Payment https k2 karnataka gov in wps portal Khajane II Scope Remittan
  • 在 Ubuntu 上安装 Python3 的 mod_wsgi

    谁能给我一套在 Ubuntu for Python 3 上安装 mod wsgi 的清晰说明 我确实使用 Python3 成功获得了 Flask 和 mod wsgi 并且短暂地感到高兴 直到我查看 Apache 的日志并意识到我遇到了这个
  • UnicodeDecodeError:无效的起始字节

    我有一个关于 UnicodeDecodeError invalid start byte 的快速问题 我认为我的文本中的某个地方有非 UTF 8 字符 但错误消息的位置是读取文件的起点 所以我不知道如何修复它 如果您有任何建议 请告诉我 以
  • Mysql 如何获取给定年份和月份的第一个星期一

    如何获取给定年份月份的第一个星期一 SET YearMonth 201304 Result 2013 04 01 For April 2013 11 04 For November 提前致谢 Try this SET firstday 20
  • 使用 CSVHelper 动态映射嵌套对象

    我正在使用 CSVHelper 感谢 Josh Close 来读取 CSV 文件 效果非常好 我现在尝试使用它将该文件映射到一些内部类 但是 我映射的 CSV 因客户而异 但都需要映射到我的内部类 我需要允许客户定义 CSV 如何映射到我的
  • 安装失败,并显示消息“INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME”

    因此 我在项目中对包名称进行了一些重构 现在我无法再安装我的应用程序 大约在同一时间 我更新到了 android studio 的最新版本 我相信这可能是问题所在 因为我认为我在升级之前进行了重构 我只是不记得 100 这是我的清单
  • 金字塔图案中圆的绘制方法

    我想在 HTML 画布上以金字塔图案绘制圆形球 像这样 小提琴 你可以向我展示算法 https jsfiddle net ofxmr17c 3 https jsfiddle net ofxmr17c 3 var canvas documen
  • Android OpenGL ES 应用程序的屏幕截图

    我有一个在已添加的 GLSurfaceView 上运行的基本 openGL ES 20 应用程序 GLSurfaceView view new GLSurfaceView this view setRenderer new OpenGLRe
  • 带有 multipart/form-data 的请求返回 415 错误

    我需要使用以下方式接收此请求Spring POST test HTTP 1 1 user agent Dart 2 8 dart io content type multipart form data boundary dio bounda
  • .htaccess http 到 https 重定向 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我目前正在使用以下 htaccess 将我的网站重定向到 https 和 www 如果尚未使用 RewriteEngine On RewriteCon
  • 如何在 XMLHttpRequest 中捕获 Chrome 错误 net::ERR_FILE_NOT_FOUND?

    我想创建 chrome 扩展 它将能够读取本地文件并使用其中编写的代码 我的简单代码是 const readFile filePath gt return new Promise function resolve reject const
  • 服务如何生成和使用公共和秘密 API 密钥?

    Google Stripe 和许多其他公司都有公共 API 密钥和秘密 API 密钥 生成随机字符串很容易 但我的问题是 如何生成公钥和私钥 存储它们并正确使用它们 公共 API 密钥用于告知用户是谁 秘密用于确认用户的身份 我的流程如下
  • Typescript - React 组件中的“找不到名称”错误

    我正在将现有的 React 代码迁移到 TypeScript 并且遇到了很多问题 其中之一是当我创建我的代码时出现很多 找不到名称 错误 js files ts files 这是有问题的代码 import React from react
  • Windows 7 Websocket PlatformNotSupportedException

    我正在使用 Microsoft Azure Devices Client NuGet 包开发一个应用程序 在 Windows 10 上一切都运行良好 但在 Win7 机器上测试时我遇到了这个聚合异常 System PlatformNotSu
  • 如何在 Homebrew 中符号链接 python?

    由于某种原因 当我运行 brew link python 时 没有符号链接 我收到以下错误 我按照它告诉我的去做 但它不起作用 我已经尝试按照它告诉我的去做 但也许我没有把公式名称放在正确的位置 另外 当我执行 which python 时
  • 如何在 SQL Server 中循环插入多条数据?使用 Node JS 乏味

    我有一个 Node JS 项目 它从数组中获取数据data2 使用此数据创建一个对象myObject使用来自 API 的数据获取let url https 然后将其保存到 SQL Server 中的数据库中 我遇到的问题是我遵循MS Doc