मेरे पास सी # कोड है जो .sql
फ़ाइलों के माध्यम से चक्र चलाता है और डेटाबेस को स्थापित करने के लिए उनके अंदर क्या निष्पादित करता है।सी #, MySQL, ADO.NET, डिलीमीटर कारण वाक्यविन्यास त्रुटि
DROP PROCEDURE IF EXISTS myProc;
DELIMITER $$
CREATE PROCEDURE myProc()
BEGIN
-- procedure stuff goes here
END $$
DELIMITER ;
CALL myProc();
जब मैं इनपुट इस MySQL क्वेरी ब्राउज़र की स्क्रिप्ट विंडो में, यह पूरी तरह से चलाता है ... बार बार, बस एक यह चाहेगा के रूप में:
एक .sql
फ़ाइल मूल रूप से इस प्रकार है।
हालांकि, अगर मैं अपने IDbCommand
में स्ट्रिंग डाल दिया और यह अमल ...
connection.Open(); // An IDbConnection
IDbTransaction transaction = connection.BeginTransaction();
using (IDbCommand cmd = connection.CreateCommand())
{
cmd.Connection = connection;
cmd.Transaction = transaction;
cmd.CommandText = line;
cmd.CommandType = CommandType.Text;
try
{
cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{
transaction.Rollback();
return false;
}
}
transaction.Commit();
connection.Close();
... मैं खतरनाक अपवाद 1064 ...
आप में एक त्रुटि है मिल आपका एसक्यूएल वाक्यविन्यास; मैनुअल कि सही वाक्य रचना के पास 'परिसीमक उपयोग करने के लिए $$ बनाएं प्रक्रिया myProc() शुरू करने के लिए अपने MySQL सर्वर संस्करण के लिए संगत की जाँच ...
तो, सवाल है ... क्यों MySQL जाने करता है मैं इसे बिना किसी समस्या के करता हूं, लेकिन जब मैं इसे सी # से चलाने की कोशिश करता हूं, तो यह विफल हो जाता है? और निश्चित रूप से दूसरा सवाल यह है कि मुझे इसे कैसे ठीक करना है।
यह अच्छा है। मेरी खोजों में कभी नहीं देखा। धन्यवाद। – Brillyints