Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги / 24 сообщений из 24, страница 1 из 1
23.04.2014, 19:17
    #38623637
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
Чего делать ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
void CMySql::append_new_question( TRefresh mode, const char* pTitle, const char *pStrData, int type, const int var_pk, int count_reply )
{
	size_t Len = strlen( pStrData ) + strlen( pTitle ) + 200;

	char *SqlBuffer = new char[ Len ];

	switch (mode)
	{
		case R_APPEND:
		{
			sprintf_s( SqlBuffer,Len, "insert into tests( text_reply, type, id_test_pk, count_reply, title )\nvalues ( '%s' , %d , %d , %d, '%s'  )", pStrData, type, var_pk, count_reply, pTitle);

		} break;
	};

	/*
	mysql_query(connection, "set names cp1251");

	if( mysql_real_query( connection, SqlBuffer, strlen( SqlBuffer ) ))
	{
		throw CMySqlError("Ошибка отправки запроса");
	} */
	delete SqlBuffer;
}

строка SqlBuffer обрубается и становиться вообще не понятной.
...
Рейтинг: 0 / 0
23.04.2014, 19:41
    #38623665
nrmBeginner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323,

С какого места обрубается?
...
Рейтинг: 0 / 0
23.04.2014, 19:46
    #38623671
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
nrmBeginner,

строка должна быть такая в конце

insert into tests( text_reply, type, id_test_pk, count_reply, title )\nvalues ( 'Данные' , 0 , 0 , 0, 'Данные 2' )", pStrData, type, var_pk, count_reply, pTitle);

Если длина меньше 1024, то все нормально. Иначе нет.


обрубаеться вот так

insert into tests( text_reply, type, id_test_pk, count_reply, title )\nvalues ( 'Данные' )", pSta, type, va, count_reply, values ( 'Данные' )

что то как то так.


Иногда этого не происходит.
...
Рейтинг: 0 / 0
23.04.2014, 19:57
    #38623685
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323что то как то так.
Это твои фантазии, не может оно так обрубаться. Сохрани полученную строку в файл и
посмотри на неё внимательнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.04.2014, 19:59
    #38623688
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
Dimitry Sibiryakov,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	switch (mode)
	{
		case R_APPEND:
		{
			sprintf_s( SqlBuffer,Len, "insert into tests( text_reply, type, id_test_pk, count_reply, title )\nvalues ( '%s' , %d , %d , %d, '%s'  )", pStrData, type, var_pk, count_reply, pTitle);

		} break;
	};

вывожу ее так 	MessageBoxA(0,  SqlBuffer, 0, 0 );
...
Рейтинг: 0 / 0
23.04.2014, 20:08
    #38623710
nrmBeginner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323,

Ты действительно бессмыслицу выдал. Обрати внимание что ты приставил к строке (в кавычках) часть кода (за кавычками). Лучше, действительно, как сказал Dimitry Sibiryakov, выведи результат в файл (или хотя бы в консоль) и покажи.
...
Рейтинг: 0 / 0
23.04.2014, 20:11
    #38623715
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
как минимум добавь проверку что нет одинарной кавычки в pStrData
...
Рейтинг: 0 / 0
23.04.2014, 20:15
    #38623721
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
Dima T,

когда вывожу вот так MessageBoxA(0, SqlBuffer, 0, 0 ); все ковычки на месте. иногда обрывается иногда нет
...
Рейтинг: 0 / 0
23.04.2014, 20:19
    #38623729
nrmBeginner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323,

Как же она обрывается когда закрывающая скобка в тексте на месте?
append_new_question у тебя не виртуальная? Похоже как будто у тебя две такие функции и просто в разные моменты над одним и тем же буффером вызвается либо одна либо другая.
...
Рейтинг: 0 / 0
23.04.2014, 20:21
    #38623733
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323когда вывожу вот так
Но почему ты думаешь, что это не ограничение самого MessageBoxA?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
23.04.2014, 20:22
    #38623736
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323,

какое значение возвращает sprintf_s ?
...
Рейтинг: 0 / 0
23.04.2014, 20:23
    #38623737
nrmBeginner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
nrmBeginner,

А зачем ты удаляешь буфер сразу строчкой "delete SqlBuffer;" ? Это после этого ты проверяешь содержимое?
...
Рейтинг: 0 / 0
23.04.2014, 20:27
    #38623740
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
nrmBeginner,

до этого проверяю
...
Рейтинг: 0 / 0
24.04.2014, 08:16
    #38623934
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323, дебаггером смотришь?
...
Рейтинг: 0 / 0
24.04.2014, 18:11
    #38625023
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
mayton,

ты пошутить решил ? чего он там покажет
...
Рейтинг: 0 / 0
24.04.2014, 18:20
    #38625030
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323чего он там покажет
всё покажет
...
Рейтинг: 0 / 0
24.04.2014, 19:56
    #38625101
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323mayton,

ты пошутить решил ? чего он там покажет
Уважаемый. Выведи свою строку не в месседж бокс а в файл или в текстовый терминал
чтобы было о чём поговорить.
...
Рейтинг: 0 / 0
24.04.2014, 21:04
    #38625141
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
mayton,

я в MessageBox 5000 символов загружал и все ок
...
Рейтинг: 0 / 0
24.04.2014, 21:38
    #38625160
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
Господа, я думаю, что он просто не знает как вывести строку в файл.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25.04.2014, 00:19
    #38625259
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
Dimitry SibiryakovГоспода, я думаю, что он просто не знает как вывести строку в файл.
это проблемы его работодателя
...
Рейтинг: 0 / 0
25.04.2014, 06:24
    #38625312
Strangecat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
Это послание сверху. Сам ЛММ велит тебе использовать prepared statement'ы, а не заниматься
фигнёй.
...
Рейтинг: 0 / 0
25.04.2014, 09:57
    #38625436
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323mayton,

я в MessageBox 5000 символов загружал и все ок
Делай скриншот.
...
Рейтинг: 0 / 0
25.04.2014, 10:03
    #38625442
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
gera3323я в MessageBox 5000 символов загружал и все ок
Затем в MessageBox() нажимаешь Ctrl+C чтобы скопировать в буфер обмена, и запускаешь свой запрос из SQL-менеджера своей СУБД и проверяешь что запрос рабочий.
...
Рейтинг: 0 / 0
25.04.2014, 14:46
    #38625806
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
Затих автор. Что-то не склеилось?
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]