powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
15 сообщений из 15, страница 1 из 1
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34188666
Martin_8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
У меня следующая ситуация. Из таблицы Access делаю элементарную выборку. Одно из полей (text_gar), этой таблицы имеет тип MEMO и в нем находится достаточно длинный текст. Результаты заношу в отчёт в Word. Код следующий (С++ Builder):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
AnsiString rekv1, rekv2, text_gar;
…
ADOQuery6->Close();
ADOQuery6->SQL->Clear();
ADOQuery6->SQL->Add("SELECT DISTINCT sys.Rekvizity, sys.Name, sys.[Tekst_ garantii] FROM sys");
ADOQuery6->Open();
rekv1 =ADOQuery6->Fields->Fields[ 0 ]->AsString;
rekv2 =ADOQuery6->Fields->Fields[ 1 ]->AsString;
text_gar =ADOQuery6->Fields->Fields[ 2 ]->AsString;
…
ShowMessage(text_gar); 
…
rs = text_gar;
WordDocument1->Range(EmptyParam, EmptyParam)->InsertAfter(StringToOleStr(rs));

При этом я получаю только первые 255 символов своего текста, как в ShowMessage, Так и в отчёте в Word.
Подскажите, пожалуйста, почему запрос не возвращает полный текст из поля text_gar, а возвращает только 255 символов ?
Как мне вернуть весь текст из моего поля text_gar ?
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34190558
Martin_8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, неужели никто не знает в чём проблема.
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34190783
nikname
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В CRecordset надо было увеличивать размер буфера для поля - по умолчанию как-раз 255. Попробуйте посмотреть, как это сделать в ADO. Очевидно - ваша ошибка в этом.
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34191754
Martin_8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ. Может Вы подскажите, как это сделать применительно к ADO ?
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34191859
Фотография sashka304
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторsys.[Tekst_ garantii]
а чего не так sys.Tekst_ garantii?
всмысле зачем там скобочки квадратные?
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34192701
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробел
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34194385
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотри метод GetChunk() у объекта Field.
Если ADOQuery6->Fields->Fields[2]->Type == adVarchar (ну или как там Акцесс обозначает свои мемо-поля?) То читаешь длинное поле в цикле по кускам.
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34194888
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Martin_8
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
AnsiString rekv1, rekv2, text_gar;
…
ADOQuery6->Close();
ADOQuery6->SQL->Clear();
ADOQuery6->SQL->Add("SELECT DISTINCT sys.Rekvizity, sys.Name, sys.[Tekst_ garantii] FROM sys");
ADOQuery6->Open();
rekv1 =ADOQuery6->Fields->Fields[ 0 ]->AsString;
rekv2 =ADOQuery6->Fields->Fields[ 1 ]->AsString;
text_gar =ADOQuery6->Fields->Fields[ 2 ]->AsString;
…
ShowMessage(text_gar); 
…
rs = text_gar;
WordDocument1->Range(EmptyParam, EmptyParam)->InsertAfter(StringToOleStr(rs));


код правильный до 2Г должен текст возвращать. проверь размер возвращенной строки сразу после получения.
Вот только имя таблицы запрещенное - тоже могут быть проблемы
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34195025
Martin_8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[/quot]
код правильный до 2Г должен текст возвращать. проверь размер возвращенной строки сразу после получения.[/quot]

Проверил…, написал так
ShowMessage(ADOQuery6->Fields->Fields[2]->AsString);
Кроме того, посмотрел в отладке, тоже самое: только 255 символов. Обрыв прямо на середине слова.
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34195035
Martin_8
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlСмотри метод GetChunk() у объекта Field.
Если ADOQuery6->Fields->Fields[2]->Type == adVarchar (ну или как там Акцесс обозначает свои мемо-поля?) То читаешь длинное поле в цикле по кускам.
Пожалуйста, дайте пример , как это должно выглядеть в моём случаи.
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34197738
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Martin_8 White OwlСмотри метод GetChunk() у объекта Field.
Если ADOQuery6->Fields->Fields[2]->Type == adVarchar (ну или как там Акцесс обозначает свои мемо-поля?) То читаешь длинное поле в цикле по кускам.
Пожалуйста, дайте пример , как это должно выглядеть в моём случаи. Как это должно выглядеть в твоем случае - тебе никто не даст примера. И вообще, RTFM. Открой доку на ADO и посмотори описание функции GetChunk. Там тебе и примеры есть и теория работы расписана.
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34197840
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так ты в отчете Word получаешь 255 символов ??
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34197843
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ой что то ответ "нажал"

известная проблема ,
передавай по 255 кусками.

ну может и можно побороть у меня такая же проблема была но в екселе.
я сделал именно передавал кусками.
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34198592
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JibSkeartТак ты в отчете Word получаешь 255 символов ??

не было у меня с акцессом никаких проблем с memo - по 100К тексты легко клал и брал.
...
Рейтинг: 0 / 0
Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
    #34198844
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lepsik JibSkeartТак ты в отчете Word получаешь 255 символов ??

не было у меня с акцессом никаких проблем с memo - по 100К тексты легко клал и брал.

Ну я предположил.
У меня в одном моменте, при передачи строки в Excell не передовались сторки больше 255 символов , то есть передавались, но просто обрезались.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Запрос не возвращает всё данные поля, даёт только 255 первых символов, где остальное ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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