Express. JS и Node-MS SQL ошибка выбора: неверное имя столбца для любого значения, которое не является целым - PullRequest
0 голосов
/ 10 марта 2020

Я думаю, что таблица, которую я пытаюсь запросить, не нормализована (не мой набор данных). Всякий раз, когда мое предложение where включает значение, которое не является числом, я получаю ошибку ниже. Это как если бы значение предложения where перепуталось с самим именем столбца. Теперь, если я изменю столбец на поле, содержащее только цифры, он выполняется без ошибок. Есть идеи, почему это происходит?

  name: 'ERROR',
  event: 'errorMessage',
  number: 207,
  state: 1,
  class: 16,
  message: "Invalid column name 'somestring'.",
  serverName: 'server1234\\SQLEXPRESS',
  procName: '',
  lineNumber: 1
var express = require('express');
var app = express();

app.get('/', function (req, res) {

 var sql = require("mssql");

 // config for your database
 var config = {
     user: 'username',
     password: 'password',
     server: 'server1234',
     database: 'dbname1234'
 };

 // connect to your database
 sql.connect(config, function (err) {

     if (err) console.log(err);

     // create Request object
     var request = new sql.Request();

     // query to the database and get the records
     request.query('select * from dbo.recordset3 where column4=somestring', function (err, recordset) {

         if (err) console.log(err)

         // send records as a response
         res.send(recordset);

     });
 });
});

var server = app.listen(5000, function () {
 console.log('Server is running..');
});```

1 Ответ

0 голосов
/ 11 марта 2020

Решено! при использовании там, где нужно использовать экранированные одинарные кавычки.

where column4 = \'somestring\'

...