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

Код: 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
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
    #38623665
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

С какого места обрубается?
...
Рейтинг: 0 / 0
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
    #38623671
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
    #38623685
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323что то как то так.
Это твои фантазии, не может оно так обрубаться. Сохрани полученную строку в файл и
посмотри на неё внимательнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
    #38623688
gera3323
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Нужно сформировать строку длиной в 3000 символов, sprintf - не помогает. Код проги
    #38623710
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gera3323,

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

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

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

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

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

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

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

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

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

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


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