Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
4 / 4 / 2
Регистрация: 29.04.2017
Сообщений: 226

Ошибка чтения данных при обращении к полю по имени

14.11.2018, 13:52. Показов 2479. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется несколько Adoquery, один из которых несёт на себе сводную таблицу данных, которая постоянно выводится на экране
При попытке обращения к ней, для взятия данных для удаления строки, происходит ошибка на данной строке
Delphi
1
kod:=DataModule3.ADOQuery1.DataSource.DataSet.FieldByName('Код');
Текст ошибки:
Access violation at adress XXXXXXXX in module 'name.exe'. Read of address 00000040


Полный код удаления
Delphi
1
2
3
4
5
6
7
DataModule3.ADOQuery3.SQL.Clear;
DataModule3.ADOQuery3.SQL.Add('delete from Сведения where Код like :param');
kod:=DataModule3.ADOQuery1.DataSource.DataSet.FieldByName('Код').value;
DataModule3.ADOQuery3.Parameters.ParamByName('param').Value:=kod;
res :=MessageDlg('Удалить запись с кодом '+kod+' ?',mtConfirmation,mbYesNo,0);
if res = mrYes then
DataModule3.ADOQuery3.ExecSQL;
Код подключения к базе данных
Delphi
1
2
3
4
5
6
7
8
9
10
DataModule3.ADOQuery1.ConnectionString:='Provider=Microsoft.ACE.OLEDB.12.0;Data Source='+Application.GetNamePath+'jjh.accdb;';
DataModule3.ADOQuery2.ConnectionString:='Provider=Microsoft.ACE.OLEDB.12.0;Data Source='+Application.GetNamePath+'jjh.accdb;';
DataModule3.ADOQuery3.ConnectionString:='Provider=Microsoft.ACE.OLEDB.12.0;Data Source='+Application.GetNamePath+'jjh.accdb;';
DataModule3.ADOQuery1.SQL.Add('Select Сведения.Код, Наименования.Название, Сведения.Вид, Сведения.[Дата выпуска], Сведения.[Срок годности], Фирма.Наименование, Сведения.Страна, Сведения.Стоимость from Сведения, Наименования, Фирма');
DataModule3.ADOQuery1.SQL.Add('where (Фирма.Код like Сведения.[Фирма производитель]) and (Наименования.Код like Сведения.Название)');
DataModule3.ADOQuery1.Active:=true;
DataModule3.DataSource1.DataSet:=DataModule3.ADOQuery1;
DataModule3.DataSource2.DataSet:=DataModule3.ADOQuery2;
DataModule3.DataSource3.DataSet:=DataModule3.ADOQuery3;
DBGrid1.DataSource:=DataModule3.DataSource1;

При этом, в другом фрагменте программы, данный метод работает, но с другим Adoquery

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
DataModule3.ADOQuery3.SQL.Clear;
DataModule3.ADOQuery3.SQL.Add('select * from Наименования where Название like :param');
DataModule3.ADOQuery3.Parameters.ParamByName('param').Value:=ComboBox1.Text;
DataModule3.ADOQuery3.Active:=true;
kod:=DataModule3.DataSource3.DataSet.FieldByName('Код').Value;
DataModule3.ADOQuery3.Active:=false;
 
DataModule3.ADOQuery3.SQL.Clear;
DataModule3.ADOQuery3.SQL.Add('select * from Фирма where Наименование like :parama');
DataModule3.ADOQuery3.Parameters.ParamByName('parama').Value:=firm.Text;
DataModule3.ADOQuery3.Active:=true;
firmkod:=DataModule3.DataSource3.DataSet.FieldByName('Код').Value;
DataModule3.ADOQuery3.Active:=false;
form4.Caption:=inttostr(kod)+inttostr(firmkod);
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2018, 13:52
Ответы с готовыми решениями:

При обращении к memo полю появляется ошибка
При чтении текста из базы paradox (поле типа мемо) .db возникает ошибка BLOB has been modified Помогите плиз решить эту проблему. ...

Постоянная ошибка при обращении к полю
Всем доброго времени суток. Возникла такая вот проблема: при обращению к определенной колонке таблицы (вложение 1 - Structure.png),...

Ошибка при обращении к объектам при открытии формы в режиме добавления данных acFormAdd
запускаю простой код, который в теории должен открыть форму в режиме добавления данных и сделать кнопки не активными Private Sub...

2
 Аватар для drvolodko
224 / 68 / 33
Регистрация: 23.05.2014
Сообщений: 752
14.11.2018, 14:55
Лучший ответ Сообщение было отмечено Solaris5000 как решение

Решение

Цитата Сообщение от Solaris5000 Посмотреть сообщение
kod:=DataModule3.ADOQuery1.DataSource.Da taSet.FieldByName('Код')
Цитата Сообщение от Solaris5000 Посмотреть сообщение
firmkod:=DataModule3.DataSource3.DataSet .FieldByName('Код').Value;
Найдите 10 отличий...
Должно быть
Delphi
1
kod:=DataModule3.ADOQuery1.DataSource.DataSet.FieldByName('Код').value;
1
4 / 4 / 2
Регистрация: 29.04.2017
Сообщений: 226
14.11.2018, 14:59  [ТС]
2 часа убил в это, не понимая что к чему
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.11.2018, 14:59
Помогаю со студенческими работами здесь

Почему ошибка при обращении к базе данных ?
Помогите пожалуйста запустить сервлет. Сервлет генерирует после запуска из под Tomcate 4.0 исключение типа...

При обращении к полю родителя взять правильное значение
Есть класс-родитель, в котором создается и заполняется массив. В классе-потомке узнаем размер этого массива и поэлементно проверяем,...

Ошибка при обращении к базе данных Delphi Berlin 10.1 + MS SQL Server 2012
Помогите разобраться. У меня был старый проект в Delphi (Berlin 10.1). Я его немножко изменил для других целей. Была, короче говоря,...

NullReferenceException при обращении к контролу по имени
Здравствуйте. Собственно код: (this.Controls as Label).Text = "+" + Array_Res.ToString(); Ошибка - Ссылка на объект не...

Переменная в имени поля при обращении к БД
День добрый. Имеется созданная в Аксессе таблица. Есть форма, с помощью которой ведётся некоторая обработка и ввод/вывод данных этой...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru