ezus
Опытный
Offline
|
|
« : 07-07-2008 12:21 » |
|
Все - крыша уехала. //////////////////////////////////////////////////////////// CString stmp1; CString stmp2; CString txt; CString selsql;
txt = prepText( r->_txt, true );
stmp1 = "update items set "; stmp1 += "txt = '" + txt + "' "; stmp2.Format(" where item = %d and event = %d ", r->_item, r->_event );
selsql = stmp1 + stmp2; ////////////////////////////////////////////////////////// "+" не работает. selsql == stmp1
Хоть какой-нибуть намек на причину. Что с этим можно сделать? Спасибо.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #1 : 07-07-2008 12:32 » |
|
что делает prepText ? каковы типы r->_item r->_event ?
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #2 : 07-07-2008 12:34 » |
|
вот такой код работает CString stmp1; CString stmp2; CString txt; CString selsql;
txt = "1111";//prepText( r->_txt, true );
stmp1 = "update items set "; stmp1 += "txt = '" + txt + "' "; stmp2.Format(" where item = %d and event = %d ", 7,8/*r->_item, r->_event */);
selsql = stmp1 + stmp2;
|
|
|
Записан
|
|
|
|
ezus
Опытный
Offline
|
|
« Ответ #3 : 07-07-2008 13:00 » |
|
r->_item и r->_event - int
prepText возвращает строку
{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset204 MS Sans Serif;}}\\r\\n\\viewkind4\\uc1\\pard\\lang1049\\f0\\fs17 \\r\\n\\par }\\r\\n
То что это в принципе работает - это понятно. Я проверил с теми же данными в тестовом примере - все ОК. А в самой программе работать не хочет.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #4 : 07-07-2008 13:16 » |
|
тут ведь ещё вот чего... Что подразумевается под "не работает" ?
а может тут \\r\\n не нужны двойные слеши ?
|
|
|
Записан
|
|
|
|
ezus
Опытный
Offline
|
|
« Ответ #5 : 07-07-2008 14:29 » |
|
Не работает - это значит, что a = b + c получаем a == b при непустом b.
А \\r\\n нужны, чтобы они не сработали как \r\n, а сохранились в базе на потом.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #6 : 07-07-2008 14:32 » |
|
ezus, ))) Так у тебя между a и b где ентер затесался, покажи HEX обоих строк перед сложением и HEX результата (длину доставай через GetLength() )
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #7 : 07-07-2008 14:34 » |
|
а в базе всё сохранится, кстати
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #8 : 07-07-2008 14:35 » |
|
CString stmp1; CString stmp2; CString txt; CString selsql;
txt = "{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset204 MS Sans Serif;}}\\r\\n\\viewkind4\\uc1\\pard\\lang1049\\f0\\fs17 \\r\\n\\par }\\r\\n";
stmp1 = "update items set "; stmp1 += "txt = '" + txt + "' "; stmp2.Format(" where item = %d and event = %d ",7,8);
selsql = stmp1 + stmp2;
получается update items set txt = '{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset204 MS Sans Serif;}}\r\n\viewkind4\uc1\pard\lang1049\f0\fs17 \r\n\par }\r\n' where item = 7 and event = 8
что где пропало ? и всё таки тебе надо \r\n
|
|
|
Записан
|
|
|
|
ezus
Опытный
Offline
|
|
« Ответ #9 : 08-07-2008 06:01 » |
|
Спасибо Всем.
Мой сын обругал меня, что я не хочу докапаться до истины, но 1. Мне уже надоело докапываться, я хочу решать задачи, а не бороться с инструментом. Такие радости для молодых, и я их понимаю, сам через это прошел. Но со временем это надоедает. 2. Просто нет времени - и это главное.
Вместо s1 = s2 + s3;
написал s1.Format("%s%s", s2,s3);
Бред, конечно, но сработало.
Еще раз - всем спасибо.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #10 : 08-07-2008 06:28 » |
|
хм, а почему у меня всё нормально складывается ?
|
|
|
Записан
|
|
|
|
ezus
Опытный
Offline
|
|
« Ответ #11 : 08-07-2008 07:02 » |
|
В этом и вопрос. Чтобы на него ответить, похоже, надо рыть слишком глубоко, или ошибка на уровне тупой описки, которую без использования метода "пустой головы" мне не найти. Или просто переписать код - а на это жалко времени.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #12 : 08-07-2008 07:19 » |
|
да всё делается гораздо проще: отладчик. Всё станет на места в миг
|
|
|
Записан
|
|
|
|
ezus
Опытный
Offline
|
|
« Ответ #13 : 08-07-2008 12:36 » |
|
Это я и имею ввиду. Отладчик на уровне программы ничего не дает. А дальше надо погружаться в код системы, на что и нет времени.
|
|
|
Записан
|
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #14 : 08-07-2008 17:01 » |
|
ezus, не надо никуда погружаться Покажи содержимое строк до сложения и содержимое результата
|
|
|
Записан
|
|
|
|
ezus
Опытный
Offline
|
|
« Ответ #15 : 09-07-2008 05:26 » |
|
Спасибо, но это сейчас уже не актуально.
|
|
|
Записан
|
|
|
|
|