Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 1
Регистрация: 05.12.2010
Сообщений: 21

Несколько ошибок разом. Касательно памяти.

25.05.2011, 15:01. Показов 2462. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый всем. Проблема следующая: при компиляции программы вылетают ошибки:
1)"Project Project1.exe raised exception class EReadError with message 'List capacity out of bounds (%d)'.
2)"Project Project1.exe raised exception class EReadError with message 'Property is read-only'.
3)'Stack overflow' -> Access violation.

Погуглил.
Увеличил размер стека до максимума.
Убрал из процедур форм вызовы тех процедур, которые ещё не созданы\уже разрушены.
В целях экономии памяти в процедурах прописывал form*.destroy вместо form*.close\form*.hide
Проверил нет ли рекурсивных процедур, либо зацикленных операций.
Ни в одной процедуре не описан в качестве переменной массив. Его как переменной не существует(если не считать grid).

Программа пока не содержит ни одной серьёзной процедуры - в основном только ссылки на другие формы и проверки.
Вот те немногие процедуры, которые существуют.
2 процедуры поиска и 2 процедуры авторизации.

Я в печали... В чём проблема - не соображаю.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
procedure TForm1.Button4Click(Sender: TObject);
var
f:string;
begin
f:=form1.Edit1.text;
with form1.adoQuery1 do begin
form1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.Active :=false;
ADOQuery1.SQL.LoadFromFile('select * From " guns " WHERE +item+ like "' +f+ '%"');
ADOQuery1.Active :=true;
open;
end;
end;
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
s:string;
begin
i:=form1.RadioGroup1.ItemIndex;
case i of
0 : s:='Автоматическое';
1 : s:='Полуавтоматическое';
2 : s:='Неавтоматическое';
3 : s:='Аксессуары';
4 : s:='Комплектующие';
end;
with form1.adoQuery1 do begin
form1.close;
ADOQuery1.SQL.Clear;
ADOQuery1.Active :=false;
ADOQuery1.SQL.LoadFromFile('select * From " guns " WHERE +type+ like "' +s+ '%"');
ADOQuery1.Active :=true;
open;
end;
end;
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm3.Button1Click(Sender: TObject);
begin
if form3.Edit2.Text='993' then
begin;
form3.close;
form6.show;
end;
if form3.Edit2.Text<>'993' then form7.show;
end;
Delphi
1
2
3
4
5
6
7
8
9
procedure TForm11.Button1Click(Sender: TObject);
begin
  if (form11.Edit1.Text='vansant') and (form11.Edit2.Text='993') then
begin;
form11.close;
form10.show;
end;
if (form11.Edit1.Text<>'vansant') and (form11.Edit2.Text<>'993') then form7.show;
end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.05.2011, 15:01
Ответы с готовыми решениями:

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

Несколько вопросов, касательно выбора хдд
Помогите определится в двух вещах: Что важно при выборе жесткого диска (цена, бренд, гарантия, емкость)? И какой диск лучше выбрать для...

Разъясните несколько пунктов касательно ббф и бмф
Здравствуйте.Есть несколько вопросов, которые не получается нагуглить. 1)Главная часть бмф, сравнение бмф. \lim_{x\rightarrow 0}x^2-x -...

11
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
25.05.2011, 15:27
У Вас по всем признакам зацикливание
0
0 / 0 / 1
Регистрация: 05.12.2010
Сообщений: 21
25.05.2011, 15:29  [ТС]
Так то оно так. Да вот только ему появиться неоткуда. Это все процедуры, которые могли бы хоть что-то сделать.
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
25.05.2011, 15:32
Delphi
1
ADOQuery1.SQL.LoadFromFile('select * From " guns " WHERE +item+ like "' +f+ '%"');
Это что за чудо-юдо О_о
Вы, наверное хотели сделать так :

ADOQuery1.SQL.Text := 'select * From guns WHERE+item+like '+QuotdStr(f+ '%');
ADOQuery1.Open;

Добавлено через 1 минуту
QuotedStr
0
0 / 0 / 1
Регистрация: 05.12.2010
Сообщений: 21
26.05.2011, 06:40  [ТС]
Справился с проблемой написанием программы с нуля.
Теперь вылетает одна оч неприятная ошибка в процедуре поиска. Не могли бы вы помочь исправить.
Говорю заранее - это оч глупый вариант поиска, но мне он почему то приглянулся.
Delphi
1
2
3
4
5
6
7
8
procedure TForm6.Button1Click(Sender: TObject);
var
find:string[12];
begin
find:=form6.Edit1.Text;
form6.ADOTable1.Filter:=find;
form6.Panel1.Visible:=true;
end;
в панели собственно находятся гриды для отображения найден... отфильтрованного. в чём фейл плз скажите:/
[quota]First chance exception at $7C812AFB. Exception class EOleException with message 'Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом'. Process Project2.exe (472)[/quota]
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
26.05.2011, 10:20
Не вдаваясь в обсуждения "оптимальности" поиска..
Фильтрация делается 2-мя способами:

1) Св-во Filter.
В это св-во записывается SQL-выражение условия, например FIO LIKE 'Иванов%' AND VOZRAST BETWEEN 18 AND 22:

Table.Filtered := false;
Table.Filter := 'FIO LIKE ''Иванов%'' AND VOZRAST BETWEEN 18 AND 22';
Table.Filtered := true;

Проверить корректность подставляемого выражения очлегко - для этого дстаточно в любом скл-эксплорере написать
SELECT * FROM TABLE
WHERE <сюда занести ваши условия из Filter>
Если запрос выполнится правильно смело запускайте код на выполнение

2) Событие OnFilterRecord
В обработчике этого события пишете

with DataSet do
Accept = (Copy(AnsiUpperCase(FieldByName('FIO').A sString),1,6)='Иванов') and
((FieldByName('FIO').AsInteger>=18) and (FieldByName('FIO').AsInteger<=22));

Добавлено через 1 минуту
with DataSet do
Accept = (Copy(AnsiUpperCase(FieldByName('FIO').A sString),1,6)='Иванов') and
((FieldByName('VOZRAST').AsInteger>=18) and (FieldByName('FIO').AsInteger<=22));

Добавлено через 46 секунд
with DataSet do
Accept = (Copy(AnsiUpperCase(FieldByName('FIO').A sString),1,6)='Иванов') and
((FieldByName('VOZRAST').AsInteger>=18) and (FieldByName('VOZRAST').AsInteger<=22));

0
151 / 151 / 3
Регистрация: 05.05.2010
Сообщений: 570
26.05.2011, 12:52
'Автоматическое';'Полуавтоматическое';'Н еавтоматическое';'Аксессуары'; 'Комплектующие';- вынести в отдельную таблицу БД.
0
0 / 0 / 1
Регистрация: 05.12.2010
Сообщений: 21
26.05.2011, 14:14  [ТС]
2 harmless
хм... идея. но слишком много гемора. трабл в том просто, что я просто напросто не умею делать sql запросы вообще поэтому вот так вот извращаюсь.
2 MsGuns
ниодин вариант не подошёл. ругается что переменные перекрывают друг дружку... а вот какие показывать увы не хочет(
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
26.05.2011, 14:37
Тогда эта.. в дворники, там всегда дефицит рабочих рук
0
0 / 0 / 1
Регистрация: 05.12.2010
Сообщений: 21
26.05.2011, 16:20  [ТС]
не, дворники эт не мое
А проблему решил.
Я подрубил tquery и... Пришлось таки составить sql запрос... Ну не люблю я их
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
26.05.2011, 16:47
Delphi
1
Ну не люблю я их
Вы просто не умеете их готовить (с)
0
1263 / 706 / 62
Регистрация: 21.12.2009
Сообщений: 2,256
26.05.2011, 17:35
Цитата Сообщение от VanSant Посмотреть сообщение
Пришлось таки составить sql запрос... Ну не люблю я их
Либо придется полюбить, либо подумать о предложении MsGuns
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.05.2011, 17:35
Помогаю со студенческими работами здесь

Закачать разом несколько файлов через QNetworkAccessManager
Через QNetworkAccessManager::post() можно отправлять на HTTP-сервер файлы по одному. А можно ли как-нибудь отправлять сразу несколько...

Можно ли вставить разом сразу несколько значений в массив ?
Здравствуйте, вот такая проблема, можно ли вставить сразу несколько значений в массив, т.е Пример ряда, как выглядит в excel 12 23 ...

Несколько ошибок
39 ошибок, связаны со string, а также с переменными height и weight. string was not declared in this scope invalid use of...

Несколько разных ошибок
Доброго времени суток, в общем, ситуация следующая: Есть компьютер, который уже три месяца самопроизвольно крашится, выдавая рандомно 3...

Устранить несколько ошибок
Привет всем! Перевел тут код с VB.NET на C# (Требование сверху, им там легче в C# копаться), но вылезло несколько ошибок, которые...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru