Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Σφάλμα κατά την εκτέλεση stored procedure μέσω MySQL Connector Net 5.2.3

Îåêßíçóå áðü ôï ìÝëïò xxxgroove. Τελευταία δημοσίευση από το μέλος xxxgroove στις 31-10-2008, 15:39. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-10-2008, 15:39 45722

    Σφάλμα κατά την εκτέλεση stored procedure μέσω MySQL Connector Net 5.2.3

    Γεια χαρά σε όλους,

    όταν προσπαθώ να εκτελέσω την παρακάτω stored procedure:

    CREATE DEFINER=`root`@`localhost` PROCEDURE `InsertTranslation`(
    IN PTranslation TEXT,
    IN PCultureId INT,
    IN PPhraseId BIGINT,
    OUT NewId BIGINT)
    BEGIN
    INSERT INTO Translations (Translation, CultureId, PhraseId)
    VALUES (PTranslation, PCultureId, PPhraseId);
    SET NewId = LAST_INSERT_ID();
    END$$

    DELIMITER ;

    παίρνω το παρακάτω σφάλμα:

    Incorrect string value: '\xE7\x94\xA8\xE6\x88\xB7...' for column 'PTranslation' at row 1

    το πεδίο PTranslation έχει CharSet utf8 και collation utf8_general_ci αφού υποστηρίζει πολλές γλώσσες όπως κινέζικα, αραβικά κτλ.

    ο .net κώδικας που εκτελεί την εισαγωγή είναι ο παρακάτω:

    public long Save()
    {
    long newId = -1;

    using (MySqlConnection con = new MySqlConnection(Settings.Default.RESXGeneratorConnection))
    {
    con.Open();

    using (MySqlCommand cmd = new MySqlCommand(@"InsertTranslation", con))
    {
    cmd.CommandType = CommandType.StoredProcedure;

    cmd.Parameters.AddWithValue("PTranslation", TranslatedPhrase);
    cmd.Parameters["PTranslation"].Direction = ParameterDirection.Input;

    cmd.Parameters.AddWithValue("PCultureId", Language.Id);
    cmd.Parameters["PCultureId"].Direction = ParameterDirection.Input;

    cmd.Parameters.AddWithValue("PPhraseId", OriginalPhrase.Id);
    cmd.Parameters["PPhraseId"].Direction = ParameterDirection.Input;

    cmd.Parameters.Add("NewId", MySqlDbType.Int64);
    cmd.Parameters["NewId"].Direction = ParameterDirection.Output;

    cmd.ExecuteNonQuery();

    newId = Convert.ToInt64(cmd.Parameters["@NewId"].Value);
    }
    }

    return newId;
    }

    Μήπως έχει συναντήσει κάποια/ος συνάδελφος κάτι παρόμοιο?
    Δημοσίευση στην κατηγορία: , ,
  •  25-10-2008, 14:01 45739 σε απάντηση της 45722

    Απ: Σφάλμα κατά την εκτέλεση stored procedure μέσω MySQL Connector Net 5.2.3

    Δοκίμασε να κάνεις τις ακόλουθες αλλαγές στο my.ini μέσα στο "C:\Program Files\MySQL\MySQL Server x.x", κάνε το default-character-set=utf8 και σε αυτό που βρίσκεται στο [mysql] section αλλά και σε αυτό που βρίσκεται μέσα στο [mysqld] section. Μετά κάνε restart το service του mySQL server, για να ενεργοποιηθούν οι αλλαγές.

     

    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  31-10-2008, 15:39 45884 σε απάντηση της 45739

    Απ: Σφάλμα κατά την εκτέλεση stored procedure μέσω MySQL Connector Net 5.2.3

    Γεια σου Γιώργο σε ευχαριστώ για την απάντηση αλλά δυστυχώς οι ρυθμίσεις που προτείνεις προυπήρχαν στον MySQL Server καθώς το setup είχε γίνει επιλέγοντας πολυγλωσσική υποστήριξη. Οπότε το πρόβλημα παραμένει δυστηχώς. Βέβαια επιλύθηκε επιμέρους με την χρήση απλών queries και όχι stored procedures...

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems