2017-01-24 15 views
1

ノードjsを使用してSQL Serverストアドプロシージャを呼び出そうとしています。しかし、私がプロシージャをテストすると、 "SQL.EXECUTE"が関数ではないというエラーが表示されます。 それはどういう意味ですか?私はC#のコードから、次のデータでストアドプロシージャをテストして、それがうまく働いたが、それは私がノードのjssql.executeはノードjsおよびsqlサーバーの関数ではありませんか?

var sql = require('mssql'); 

var config = { 
    user: 'realm', 
    password: 'friend', 
    server: '172.10.3.22\\SQL2014', 
    database: 'ElmaTest' 
}; 

var updateMember = function(Country, Distributor,OilMerchant,FileName,CargoType,OperatorID) { 
    return sql.execute({ //I get error pointing at this particular line 
     procedure: "p_GetAllocationDetail", 
     params: { 
      Country: { 
       type: sql.VARCHAR, 
       val: Country 
      }, 
      Distributor: { 
       type: sql.VARCHAR, 
       val: Distributor 
      }, 
      OilMerchant: { 
       type: sql.NVARCHAR, 
       val: OilMerchant 
      }, 
      FileName: { 
       type: sql.VARCHAR, 
       val: FileName 
      }, 
      CargoType: { 
       type: sql.VARCHAR, 
       val: CargoType 
      }, 
      OperatorID: { 
       type: sql.VARCHAR, 
       val: OperatorID 
      } 
     } 
    }); 
}; 

function connecttoDb() { 
    // updateMember("elma","pass1234"); 
    sql.connect(config, function (err) { 

     if (err) console.log("message is for" + err); 
     updateMember("Kenya","Total","Oilibya","","","Jessica"); 
    }); 
} 

module.exports.datavalue = connecttoDb(); 
+0

mssqlのどのバージョンを使用していますか? 2.xまたは3.x? – Marco

答えて

1

あなたの構文でそれを呼び出そうとするとエラーが表示さdocumentationに応じて間違っています。

それは要するに

var sql = require('mssql'); 
/*...*/ 

new sql.Request() 
     .input('Country', sql.VarChar(50), Country) 
     .input('Distributor', sql.VarChar(50), Distributor) 
     .input(/* .... */) 
     .execute('p_GetAllocationDetail').then(function(result) { 
      console.dir(result); 
     }).catch(function(err) { 
      console.dir(err); 
     }); 

する必要があります:sqlオブジェクトがexecute機能はありません。 sql.Request()オブジェクトのインスタンスには​​関数があります。

関連する問題