Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/22: Рейтинг темы: голосов - 22, средняя оценка - 5.00
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848

добавление записей

05.01.2010, 22:52. Показов 4297. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
связь осуществляется через компонент TTable... пытаюсь добавить запись в бд.
C++
1
2
3
4
5
6
7
8
9
10
11
12
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
    Form1->UsersTable->Open();
    Form1->UsersTable->Insert();
    Form1->UsersTable->FieldByName("Фамилия")->AsString=LabeledEdit1->Text;
    Form1->UsersTable->FieldByName("Имя")->AsString=LabeledEdit2->Text;
    Form1->UsersTable->FieldByName("Отчество")->AsString=LabeledEdit3->Text;
    Form1->UsersTable->FieldByName("Номер билета")->AsInteger=StrToInt(LabeledEdit4->Text);
    Form1->UsersTable->FieldByName("Дата выдачи")->AsInteger=StrToInt(LabeledEdit5->Text);
    Form1->UsersTable->Post();
    Form1->UsersTable->Close();
}
компилируется... потом собственно при попытке добавить выдает
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 4032BB8C in module 'dbrtl60.bpl'. Read of address 78782777'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
в чем проблема?
ах да. Form2- тут 5 эдитов и вот 1 кнопочка.. вызывается из первой формы при нажатии соответствующей кнопки(добавления)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.01.2010, 22:52
Ответы с готовыми решениями:

Добавление записей в DBGrid
У меня на одной форме расположен DBGrid а на другой форме находятся Edit'ы для добавления записи в DBGrid. Помогите пожалуйста написать...

Добавление записей в таблицу
Как при помощи компонента Table добавлять записи в Табличку, если все значения полей для добавления вводятся в компонент Edit? ...

Удаление и добавление записей в таблице
У меня имеется 3 таблицы: читатели, книги, выданые книги. мне надо чтобы при нажатии кнопки выдать книгу в таблице книги уменшалось кол...

20
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
05.01.2010, 22:56
Пройдитесь отладчиком по коду. Но мне кажется что это может быть вызвано использованием русских букв в именах полей.
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
05.01.2010, 23:05  [ТС]
проходил.. ошибка вылазит после
C++
1
Form1->UsersTable->Open();
а шо касается имен полей, то щас попробую..

Добавлено через 3 минуты
то же самое
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
06.01.2010, 10:20
valera_21, слушай, ошибка говорит, что у тебя идет обращение к неинициализированной памяти, как ты вызываешь форму 2, и глянь - какой объект у тебя null
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
06.01.2010, 11:32  [ТС]
вызов формы
C++
1
2
3
4
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2->ShowModal();
}
Watch List говорит
Form2->ShowModal: E2027 Must take address of a memory location
Form1->UsersTable->Open: E2027 Must take address of a memory location
Form1->UsersTable->Insert: E2027 Must take address of a memory location

хотя я думаю все остальные из-за первой... а переменные в принципе я так понимаю объявлены.. к модулю с первой формой подключен модуль со второй... P.S. не знаю, имеет ли значение, БД пуста..
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
06.01.2010, 11:38
valera_21, у меня есть смелое предположение, что именно таблица неинициализирована... пошагово надо проверить, если ошибка вылетает после попытки ее открыть...
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
06.01.2010, 11:56  [ТС]
TTable *UsersTable; - в заголовочном файле первого модуля в описании класса TForm1.. я так понимаю это объявление таблицы? а как тогда с инициализацией?
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
06.01.2010, 12:40
valera_21, если TTable *UsersTable; находиться в разделе __published, тогда при создании окна создаться и объект, но если в других разделах, тогда с помощью new
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
06.01.2010, 12:47  [ТС]
в разделе __published.. блин( без понятия почему ошибка вылезает(
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
06.01.2010, 12:57
valera_21, а из form1 ты можешь к таблице этой обратиться?
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
06.01.2010, 13:30
valera_21, имя таблицы правильное? Просто если ошибка вылазит сразу после открытия то имена полей тут ни при чём. Косяк где-то со связью объекта TTable и реальной БД.
В TableName правильное имя таблицы?
Кроме того:
Свойство DatabaseName определяет базу данных, в которой находится таблица. Это свойство может содержать:

* BDE алиас
* директорий для локальных БД
* директорий и имя файла базы данных для Local InterBase
* локальный алиас, определенный через компонент TDatabase.

Свойство TableName определяет имя таблицы базы данных.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
06.01.2010, 13:33
Delphin_KKC, да если бы были косяки в настройке подключения к базе, то выкидывало бы исключения другие, а здесь явно идет обращение к неинициализированной памяти, только не могу понять где именно...

valera_21, выложи проект, если можно
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
06.01.2010, 13:38  [ТС]
связи нормальные.. щас переустановлю билдер.. потом отпишу..

Добавлено через 2 минуты
насчет связей.. поля таблицы выводятся ведь)
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
06.01.2010, 14:00  [ТС]
вот проект...
Вложения
Тип файла: rar project.rar (15.5 Кб, 31 просмотров)
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
06.01.2010, 14:05
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
Delphin_KKC, да если бы были косяки в настройке подключения к базе, то выкидывало бы исключения другие, а здесь явно идет обращение к неинициализированной памяти, только не могу понять где именно...
Судя по этому:
Access violation at address 4032BB8C in module 'dbrtl60.bpl
Где-то при работе с БД.

Я б поставил Form1->UsersTable в Watch и пошаговой отладкой смотрел бы значения. Если на момент вызова Open там NULL - то всё ясно. Не создался объект таблицы.

Добавлено через 2 минуты
Цитата Сообщение от valera_21 Посмотреть сообщение
...
Form2->ShowModal: E2027 Must take address of a memory location
...
Что-то с созданием формы. Стоит поставить в наблюдение значение Form2
Если к моменту вызова ShowModal там нулл - то всё ясно.
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
06.01.2010, 14:12  [ТС]
Form1->UsersTable: :00974920
Form2: :0094E8E0
0
UNIX-way
 Аватар для Delphin_KKC
712 / 495 / 49
Регистрация: 15.01.2009
Сообщений: 1,720
06.01.2010, 14:17
Цитата Сообщение от valera_21 Посмотреть сообщение
Form1->UsersTable: :00974920
Form2: :0094E8E0
Это в какие моменты отладки?
значение форм2 интересует именно в момент перед самым вызовом ShowModal (т.е. когда курсор отладчика стоит на этой строке и нажатие Ф7 приведёт к вызову этого метода.
а значение Form1->UsersTable именно в момент перед вызовом Open.
1
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
06.01.2010, 14:24  [ТС]
именно тогда
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
06.01.2010, 15:30
valera_21, у вас есть такая строка:

#include "AddReader.cpp" - замените на расширение h
а еще если нетрудно, то лучше имена в базе полям давать на латинице и одним словом, но это всего лишь мое ИМХО... и еще как замечание - таблица у вас и так открыта, поэтому можно просто перевести ее в режим редактирования и все, закрывать в принципе тоже не надо, метода Post вполне хватит
1
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
06.01.2010, 15:37  [ТС]
Lord_Voodoo, опа... спасибо вам огромное) а можете объяснить почему надо именно так- не .cpp файл а заголовочный?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.01.2010, 15:37
Помогаю со студенческими работами здесь

Обновление и добавление записей в DBGrid
Builder 6, Firebird 2.0. Использую связку DBGrid + Datasource + IBDataSet. При добавлении в грид записи или обновлении записи в ячейке...

Добавление и удаление записей из таблиц (ADOTable)
Подключена у меня БД при помощи ADOTable. Так вот, какой нужен код для добавление и удаления записей из таблиц?

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

[borland c++] добавление записей в БД с помощью компонентов zeos
Доброго времени суток имеется база на mysql, до этого особо с базами не работал разобрался как настроить подключение к БД, но вот как...

Как в интерфейсном режиме сделать создание, добавление, удаление записей?
Здравствуйте. У меня вопрос по БД SQLite. Писала программу с использованием этой БД на Delphi, а теперь возникла необходимость реализовать...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru