Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2

Аномалия со строкой при записи данных в Access

16.08.2019, 05:56. Показов 1593. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!

Досталось наследство в виде недоБД MS Access. Заказчику нужен интерфейс для заполнения определенных полей и последующей передачи данных в MS SQL (вкратце интерфейс ставится на ноут, подключается к локальной БД и человек шляется по местам хранения документов, типа инвентаризация, а потом подключается к сети и сливает данные сетевую БД MS SQL). Так вот, столкнулся с чем:
есть в ацессовской таблице текстовое поле, например Region типа char(255). при:
C++
1
2
3
4
5
6
7
8
9
10
11
//...         
                  qLocal->Active = false;
          qLocal->SQL->Text = "Select * From TInventory";
          qLocal->Open();
          qLocal->Active = true;
 
                 qLocal->Insert();
 
                qLocal->FieldByName("Region")->AsString      = "Владивосток";
 
                 qLocal->Post();
в данное поле записывается значение "Владивосток" и куча пробелов дополняющих до 255 символов.
Подскажите, как запихнуть туда только нужное значение без этих пробелов.
Заранее благодарю за помощь.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.08.2019, 05:56
Ответы с готовыми решениями:

Запись данных в MS Access с ADOQuery (ошибка типов данных при записи)
Здравствуйте. Я добавила на форму три компонента ADOConnection, DataSource, ADOQuery. В ADOQuery прописала: SELECT*FROM Справочник ...

Ошибка при записи данных в Access
Вроде все сделал правильно, но почему-то работать не хочет. Validate(); bindingSource1.EndEdit(); ...

Access 2000 + OleDb Аномалия )
Не могу разгодать головоломку. Access + 3 клиента через OleDb. 100% что приложение не удаляет записи. 100% того что это не делают руками....

4
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
16.08.2019, 09:11
Цитата Сообщение от TrollHammer Посмотреть сообщение
есть в ацессовской таблице текстовое поле, например Region типа char(255)
Странно... Нет в Акцессе таких типов; есть тип "Короткий текст", длина которого ограничена 255 символов, есть "Длинный текст", где такого ограничения нет. Но и в одном и в другом случае я никогда не наблюдал такого поведения - чтобы значение добивалось пробелами до максимальной длины...
И кстати, раз уж работаете с Query, то зачем использовать для записи методы, характерные для Table? Попробуйте непосредственно запросом INSERT INTO... добавлять данные.
1
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
16.08.2019, 09:28  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
Попробуйте непосредственно запросом INSERT INTO
Попробую, но это я лишь для примера привел, в целом у меня 2 запроса - один к Access, другой к MS SQL, потом записи из одного запроса копируются в другой, типа
C++
1
2
    qLocal->FieldByName("Region")->AsString = qSQL->FieldByName("Region")->AsString;
...
и таких полей десяток.
Причем пытался и так
C++
1
2
    qLocal->FieldByName("Region")->AsString = qSQL->FieldByName("Region")->AsString.Trim();
...
эффекта ноль... Вообще я тоже нигде такого не наблюдал, столкнулся впервые на Access

Добавлено через 7 минут
Вылечил сменой типа поля с char на MEMO
0
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
16.08.2019, 09:31
Цитата Сообщение от TrollHammer Посмотреть сообщение
qLocal->FieldByName("Region")->AsString = qSQL->FieldByName("Region")->AsString
По логике - должно же быть наоборот: SQL-ному значению присваивается локальное значение... А что будет, если выполнить такое:
C++
1
2
String s = qLocal->FieldByName("Region")->AsString;
ShowMessage(IntToStr(s.Length()));
0
 Аватар для TrollHammer
1216 / 709 / 336
Регистрация: 22.02.2018
Сообщений: 2,095
Записей в блоге: 2
16.08.2019, 09:43  [ТС]
Цитата Сообщение от D1973 Посмотреть сообщение
если выполнить такое:
поле "Region" имело свойство char(100), соответственно, после внесения значения и отработки вашего кода выдало "100". Приложить скрины не могу пока, на работе сижу. Дома смоделирую и выложу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.08.2019, 09:43
Помогаю со студенческими работами здесь

Добавление записи в базу данных Access
База данных-Access. Необходимо добавить запись в базу Clients(открывается по щелчку по кнопке Clients), желательно через TextBox(можно...

Аномалия при открытии документа с другой формой
Имеется приватная вью, содержащая документы, сделанные по форме "TheForm". Вьюхе задана формула для формы: @If( @IsNewDoc; Form; ...

Ошибка Access Violation при записи
void Texts :: setC_String() { str=strb; str->setC_String();//здесь указывает на ошибку str=strh; ...

MS Access Открытие формы для добавления записи и автоматический ввод данных
Добрый день! В MS Access 2007, через VBA, пытаюсь решить такую ситуацию: Необходимо, по нажатию кнопки(butn1) на одной форме(Form1),...

Ошибка Invalid cross-thread access во время записи данных в контрол
Всем привет, у меня такая проблема: Я пишу код, в котором из другого потока пытаюсь изменить данные контрола, реализовавшего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru