Аватар для akexmars
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 11

Вычисляемое поле для DBGrid

13.06.2012, 23:46. Показов 2747. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
База данных содержит информацию об электронной пересылке.
Главная таблица сделана в Database Desctop -> Paradox7.
В таблице есть 1 столбец "Сообщение"(тип Alpha 80) и столбец "Объем сообщения"(пока тип=long integer).

Возможно ли задание для столбца "Объем сообщения" вычисляемого поля рассчитывающего вес строки записи столбца "Сообщение" в байтах? и если да, то как это осуществить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.06.2012, 23:46
Ответы с готовыми решениями:

Программно добавить вычисляемое поле в DBGrid
Есть БД(Paradox), TTable, TDataSource и TDBGrid. БД к таблице подключается программно (через сессию). И вот возникла нужда добавить...

Вычисляемое поле InterBase
Подскажите, как добавить вычисляемое поле в таблицу? Есть простая база в InterBase, в билдере она открывается с помощью IBDataBase, и...

Вычисляемое поле / Запрос
Добрый день!!! подскажите пожалуйста))) имеется запрос: ADOQuery2->SQL->Clear(); ADOQuery2->SQL->Add("SELECT fam, nam,...

14
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 00:10
akexmars,

Цитата Сообщение от akexmars Посмотреть сообщение
таблица сделана в Database Desctop -> Paradox7
ОМГ... И откуда вы такие беретесь?


Цитата Сообщение от akexmars Посмотреть сообщение
тип Alpha 80
А что за тип такой, не просвятите?
0
 Аватар для akexmars
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 11
14.06.2012, 00:18  [ТС]
от куда то беремся.
Alpha - Строка длиной не более 255 символов (аналог ShortString)
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 00:27
akexmars,
Цитата Сообщение от akexmars Посмотреть сообщение
в байтах?
Боюсь, что в байтах оно всегда будет показывать значение 4...
0
 Аватар для akexmars
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 11
14.06.2012, 00:30  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
akexmars,

Боюсь, что в байтах оно всегда будет показывать значение 4...
без разницы, мне главное узнать как это сделать.
А то курсовую скоро сдавать, и вот 1 недочет только с объемом
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 00:40
akexmars, а нет... Я поторопился :-) По идее даже 256 байт. Жесть какая-то...

Я бы на Вашем месте сейчас обратился в раздел "С++ для начинающих" с вопросом типа:
"Необходимо получить размер введенного ShortString и т.д."

Добавлено через 46 секунд
А хотя че там его получать... Вам срочно надо? Я мог бы с утра завтра глянуть, если бы вы проект приложили, а то так трудно ориентироваться.

Вот кстати полезно будет почитать: Сведения о переменной типа ShortString
И вот тут: Присвоение ShortString и строке с фиксированной длиной

Уж очень нерациональный тип данных у Вас выбран
1
 Аватар для akexmars
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 11
14.06.2012, 00:46  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
А хотя че там его получать... Вам срочно надо? Я мог бы с утра завтра глянуть, если бы вы проект приложили, а то так трудно ориентироваться.
до 20го числа данного месяца.
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 00:51
akexmars, окей, сделаем.
Проект все-таки, если не трудно, то прикрепите, пожалуйста.
0
 Аватар для akexmars
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 11
14.06.2012, 00:58  [ТС]
Попробуйте, если хотите.
Но я все равно сама постараюсь доработать проект)))
Проект С++Builder.rar
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 01:04
akexmars,

Цитата Сообщение от akexmars Посмотреть сообщение
Но я все равно сама постараюсь доработать проект)))
Кто кого?)))


Пока повесьте на OnCellClick у DBGrid следующее:

C++
1
2
3
4
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
ShowMessage(sizeof(this->Table1->FieldByName("Сообщение")));
}
Что выдает?
0
 Аватар для akexmars
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 11
14.06.2012, 01:17  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
Пока повесьте на OnCellClick у DBGrid следующее:

C++
1
2
3
4
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
ShowMessage(sizeof(this->Table1->FieldByName("Сообщение")));
}
Что выдает?
после добавления при двойном нажатие на строку в таблице выскакивает окошко с "4", далее появляется сообщение "Access violation at address 40006834 in module 'rtl60.bpl'. Read of address FFFFFFF9."


а по поводу кто кого - то не, просто привыкла полагаться на себя в большинстве случаев
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 01:23
akexmars,

Цитата Сообщение от akexmars Посмотреть сообщение
окошко с "4"
Это размер, который представляет DBGrid непосредственно, а не сама БД...

Добавлено через 2 минуты
Я думаю, что такой вариант не устроит, да?
1
 Аватар для akexmars
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 11
14.06.2012, 01:26  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
Добавлено через 2 минуты
Я думаю, что такой вариант не устроит, да?
Вы правильно думаете.
Но все равно спасибо)
0
1569 / 505 / 48
Регистрация: 04.04.2009
Сообщений: 1,891
14.06.2012, 02:12
akexmars,
Цитата Сообщение от akexmars Посмотреть сообщение
Вы правильно думаете.
Я еще подумаю


Цитата Сообщение от akexmars Посмотреть сообщение
Но все равно спасибо)
Пока не за что.

Добавлено через 4 минуты
Кстати, может быть еще вариант... Вытаскивать запросом из БД размер конкретного поля. Ну и уже результат запроса отображать где надо.

Добавлено через 38 минут
А вот еще попробуйте на то же событие повесить такой код:


C++
1
2
3
4
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
ShowMessage(this->DataSource1->DataSet->FieldDefs->Items[номер_столбца_с_названием_"Сообщение"]->Size);
}
Шо выдает?
0
 Аватар для akexmars
0 / 0 / 0
Регистрация: 13.06.2012
Сообщений: 11
14.06.2012, 20:42  [ТС]
Цитата Сообщение от The_Immortal Посмотреть сообщение
А вот еще попробуйте на то же событие повесить такой код:


C++
1
2
3
4
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
ShowMessage(this->DataSource1->DataSet->FieldDefs->Items[номер_столбца_с_названием_"Сообщение"]->Size);
}
Шо выдает?


Build
[C++ Error] Unit1.cpp(85): E2034 Cannot convert 'char *' to 'int'
[C++ Error] Unit1.cpp(85): E2342 Type mismatch in parameter 'Index' (wanted 'int', got 'char *')
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.06.2012, 20:42
Помогаю со студенческими работами здесь

Как создать вычисляемое поле
Как создать вычисляемое поле у Builder c++? Таблица додана из Acces компонентами ADO? Нужно один столбец помножить на втарой и щтобы...

Создать вычисляемое поле и вывести туда количество дней
Всем привет, помогите найти ошибку, нужно создать вычисляемое поле и вывести туда кол-во дней, я все сделал, но проблема в том,что поля у...

Вычисляемое поле DBGrid
Здравствуйте, подскажите пожалуйста, как в Lazarus имея компонент SQLQuery, создать вычисляемое поле. Есть два цифровых поля и в третьем...

Вычисляемое поле в DbGrid
Добрый вечер! Есть БД в SQL. DBGrid отображает таблицу с товарами, в ней есть поля кол-во и цена,сумма. Нужно,чтоб в поле сумма записалось...

Как сделать в DBGrid вычисляемое поле из двух разных таблиц?
Делаю программу для БД в Access. В одной из таблиц должна быть конечная цена всех деталей. Кол-во берется из первой, а цена из прайс листа...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

Новые блоги и статьи
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Номеклатура. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru