Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2010, 11:25   #1
Shepetov_SA
Новичок
Джуниор
 
Регистрация: 19.03.2010
Сообщений: 2
По умолчанию Трудности с обработкой результата SQL запроса

Помогите пожалуйста разобраться, я уже весь мозг себе сломал...
Нужно сделать выборку из таблицы, получить оттуда номера и сделать Shape с такими номерами круглыми.
Я делаю так:

with Form1.Query1 do begin
Close;
SQL.Clear;
Query1.SQL.Add('SELECT Pos_n, Bron from mesta.DB WHERE Id_s = "'+Label9.Caption+'";');
Query1.Open;
Query1.First;
while not Query1.EOF do
begin
MyInc:= '';
FindComponent('TShapeID').Free;
MyInc:= InttoStr(Query1.Fields[0].AsInteger);
TShapeID:= FindComponent('shape'+MyInc);
TShape(TShapeID).Shape := stCircle;
Query1.Next;
end;

При выполнении получаю ошибку "Access violation"... Видно меня заклинило, уже два дня не могу разобраться в чем проблема...
Shepetov_SA вне форума Ответить с цитированием
Старый 19.03.2010, 11:49   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

два дня?!?

>>FindComponent('TShapeID').Free;
у Вас на форме есть компонент с именем TShapeID ?!
и даже если есть - он явно один, а Вы в цикле пытаетесь что-то удалить!
ДА с использованием подобных методов ВСЕГДА надо проверять, что что-то нашлось (FindComponent<>nil )

>>TShapeID:= FindComponent('shape'+MyInc);
>>TShape(TShapeID).Shape := stCircle;
то же самое! если не нашлось shape с номером равным Pos_n то попытся сделать НеНайденное округлым выдаст тот же Access Violation...!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 19.03.2010, 11:59   #3
Shepetov_SA
Новичок
Джуниор
 
Регистрация: 19.03.2010
Сообщений: 2
По умолчанию

На форме есть 50 компонентов Shape, именно их я и пытаюсь перебрать...
строкой "FindComponent('TShapeID').Free ;" я пытаюсь обнулить предыдущее значение...

P.S. Прошу меня извинить за мои познания в Delphi, никогда еще не приходилось с ним работать.
Shepetov_SA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
отображение результата запроса в combobox mile4ka БД в Delphi 3 20.12.2010 18:17
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15
сохранение результата запроса в таблицу БД stepchild БД в Delphi 11 13.06.2008 11:20