Задавайте вопросы, мы ответим
Вы не зашли.
Всем доброго времени суток. У меня такая проблема: не могу записать строку, содержащую \t в столбец, содержащий побитовый тип данных (извините, забыл как этот тип правильно называется, а под рукой mysql нету) Работаю в MySQL6, VC2005 + Connector .Net.
Неактивен
Вопрос непоняте, поясните конкртнее, что хотите сделать, а лучше приведите запрос.
Неактивен
Запрос на C#:
sq = "INSERT INTO inform SET idt=" + Convert.ToString(Idt) + ",info=" + "QUOTE(" + sw +");";
sql.Insert(sq);
где sw = "1 1234 1342 123456 159 1 4000 0 0 4003 2 5000 5000 5000 1 1 5000 5001 5001 5001 1 1 5001 "
(пробелов нет, это \t)
Неактивен
в местах где \t вылезает ошибка синтаксиса
Неактивен
Вам следует заключить все в одиночные кавычки в запросе.
sq = "INSERT INTO inform SET idt='" + Convert.ToString(Idt) + "',info=" + "QUOTE('" + sw +"');";
Это по крайней мере. Во вторых QUOTE не предназначена для данного случая. Обрабатывать строку следует на клиенте функцией mysql_escape_string или аналогичной
Неактивен
С кавычками попробую, спасибо. А вот использовать функции С API из под C# сколько не бился, не получается, даже на форум mysql.com по этому поводу писал
Неактивен
Ну тогда просто в C# сделайте замену в строке ' на \' и другие замены, как описано в функции addslashes() http://ru2.php.net/addslashes
Неактивен
Использование Connector.NET мы некоторое время обсуждали в соседнем топике:
http://sqlinfo.ru/forum/viewtopic.php?pid=4933#p4933
Конкретно Вам нужно вот это: http://dev.mysql.com/doc/refman/5.0/en/ … nd-prepare
Неактивен
Спасибо, разобрался, все работает.
Неактивен