Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL 2008 पर Sequelize.js के साथ पेजिनेट करें (जो FETCH का समर्थन नहीं करता है)

ठीक है, तो बहुत सारी खोज और डिबगिंग के बाद, मुझे 2 चीज़ें मिलीं।

1) मेरी अगली कड़ी का उदाहरण था sequelize.sequelize , एक module.exports . के कारण लॉश के साथ। मेरा बुरा, मुझे वह याद नहीं आया, और प्रश्न में इसका उल्लेख भी नहीं किया। मुझे इसके लिए खेद है।

2) offset और limit fetch . का उपयोग करें और इस प्रकार SQL 2008 के लिए अमान्य SQL सिंटैक्स उत्पन्न करता है।

मुझे sequelize.sequelize.query() का उपयोग करके एक कच्ची क्वेरी करनी थी (चूंकि मेरा उदाहरण सीक्वेलाइज.सेक्वेलाइज था)।

यहां मेरा पूरा कोड है, जिसमें एक्सप्रेस रूटिंग और क्वेरी के लिए बदसूरत प्रारूप शामिल है:

var express = require('express')
var app = express();

app.use('/tableName', function(req, res){
    var page = req.params.page || 2;
    var rowsPerPage = req.params.perpage || 30;

    if(rowsPerPage > 100){ 
        rowsPerPage = 100; //this limits how many per page
    }

    var theQuery = 'declare @rowsPerPage as bigint; '+
        'declare @pageNum as bigint;'+
        'set @rowsPerPage='+rowsPerPage+'; '+
        'set @pageNum='+page+';   '+
        'With SQLPaging As   ( '+
        'Select Top(@rowsPerPage * @pageNum) ROW_NUMBER() OVER (ORDER BY ID asc) '+
        'as resultNum, * '+
        'FROM tableName )'+
        'select * from SQLPaging with (nolock) where resultNum > ((@pageNum - 1) * @rowsPerPage);';


    sequelize.sequelize.query(theQuery) 
     .spread(function(result) {
        res.json({result: result});
      });
});

और अगर आप (जैसा कि मैंने किया) आश्चर्य है कि sequelize.sequelize . क्यों इसके बजाय केवल sequelize ?

खैर, ऐसा इसलिए है क्योंकि var sequelize एक require() है निम्न के साथ एक फ़ाइल से module.exports :

 module.exports = lodash.extend({
  sequelize: sequelize, //reffers to new Sequelize(db,user,pass,{});
  Sequelize: Sequelize
 }, db)

तो यही कारण है कि बस sequelize.query() लौटा दिया गया था undefined , और sequelize.sequelize.query() ठीक काम करता है, क्योंकि सच में मेरा sequelize वेरिएबल sequelize . के साथ एक ऑब्जेक्ट है संपत्ति वास्तविक अगली कड़ी कनेक्शन उदाहरण है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. इकाई फ्रेमवर्क में SQL सर्वर अनुक्रम का अगला मान कैसे प्राप्त करें?

  2. SQL सर्वर में एक ट्रिगर से ईमेल भेजें (T-SQL)

  3. एकाधिक सामान्य तालिका अभिव्यक्तियों में शामिल होना

  4. FTP का उपयोग कर SQL सर्वर प्रतिकृति

  5. व्युत्पन्न कॉलम में स्ट्रिंग दिनांक आयात करें