में मैंने MySQL में एक स्टोर प्रक्रिया बनाई है जो कुछ इनपुट की अपेक्षा करता है और कुछ आउटपुट देता है। MySQL में दुकान प्रक्रिया कॉल करने के लिए मैंकॉलिंग इनपुट/आउटपुट प्रकार स्टोर प्रक्रिया सीक्वेलिज़
CALL createCoupon(1236,321, @message);
SELECT @message AS message
चला रहा हूँ और संदेश वस्तु में उत्पादन हो रही है।
अब यहां ऐसी स्थिति आती है जो मुझे इस एसपी को अनुक्रमित करने के लिए कॉल करने की आवश्यकता है। मैं sailsjs परियोजना पर काम कर रहा हूँ और queering के लिए sequelize मॉड्यूल का उपयोग कर रहा हूँ।
मैं config/db_config में डेटाबेस कनेक्शन बनाने के बाद, मेरे कनेक्शन स्ट्रिंग है:
var sequelize = new Sequelize(db.name, db.user, db.pass, {
host: db.host,
dialect: "mysql", // or 'sqlite', 'postgres', 'mariadb'
port: 3306, // or 5432 (for postgres)
maxConcurrentQueries: 100,
pool: {
maxConnections: 50,
maxIdleTime: 2000
},
queue: true
})
और मैं की तरह नियंत्रक में यह फोन कर रहा हूँ:
var Sequelize = require('sequelize');
var sequelize = require('../../config/db_config').dbase;
function setCoupon(couponCode, userId, setCouponResponse) {
var createCouponSQL = "some raw query";
sequelize.query(createCouponSQL, null, {
raw: true
}).success(function(createCoupon) {
sails.log.info(createCoupon);
setCouponResponse(null, createCoupon);
}).error(function(err) {
sails.log.error(err);
setCouponResponse(err, null);
});
}
module.exports = {
'createCoupon': function(req, callback) {
setCoupon(req.param('coupon_code'), req.session.userSession, function(err, setCouponResponse){
})
}
}
अब मैं फोन करने की जरूरत है sequelize में सपा तो मैं बस की कोशिश:
var createCouponSQL = "CALL createCoupon(1236,321, @message);";
createCouponSQL += "SELECT @message AS message";
sequelize.query(createCouponSQL, null, {
raw: true
}).success(function(createCoupon) {
sails.log.info(createCoupon);
setCouponResponse(null, createCoupon);
}).error(function(err) {
sails.log.error(err);
setCouponResponse(err, null);
});
लेकिन sequlize त्रुटि उत्पन्न:
Executing (default): CALL createCoupon(1236,321, @message);SELECT @message AS m
essage
error: Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the m
anual that corresponds to your MySQL server version for the right syntax to use
near 'SELECT @message AS message' at line 1
at Query.Sequence._packetToError (C:\Users\asd\Desktop\CardCash P2\Website\
node_modules\mysql\lib\protocol\sequences\Sequence.js:30:14)
मैं कुछ आर & डी किसी भी बात एक दुकान की प्रक्रिया है जिससे मुझे @message में प्रतिक्रिया भेज रहा है वापस बुलाने के लिए उचित ढूँढने में सक्षम किया लेकिन नहीं और मैं परिणाम प्राप्त करने के लिए एक और चयन बयान पर अमल करने की जरूरत है गया है ।
कृपया मुझे मार्गदर्शन करें कि मैं डेटाबेस से कनेक्ट किए गए तरीके से इसका उपयोग कैसे कर सकता हूं।
धन्यवाद।
लगता है मैं आपको लगता है दो कच्चे प्रश्नों को अलग से कॉल कर सकते हैं और यह आपको सही परिणाम दिखाएगा लेकिन यह उचित तरीका नहीं है। –