Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Shiningemerald
 Аватар для Electroflower
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951

Выводит пустые строки в DBGrid

01.06.2012, 23:08. Показов 5039. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем снова)
Есть проблема. В одном DBGrid выводится таблица, во второй DBGrid выводится информация по каждой строке (т.е. в первом DBGrid щелкаешь строку и во втором появляется соответствующая строке информация)
обе таблицы находятся в Access , связаны через ADOTable,

но беда в том что когда в первом DBGrid щелкаешь ПЕРВУЮ или ПОСЛЕДНЮЮ строку то во втором DBGrid НЕ появляется соответствующая строка информации=((( для остальных строк работает..

Добавлено через 23 минуты
могу выложить прогу свою=(
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.06.2012, 23:08
Ответы с готовыми решениями:

Фильтрация данных в ADOQuery выводит пустые строки
Как сделать фильтрацию данных в ADOQuery пишу такое выводит пустые строки... ADOQuery.Filtered:=true; ADOQuery.Filter:='Class =...

Скрыть пустые столбцы в dbgrid
Всем привет) Подскажите, как можно скрыть пустые столбцы в dbgrid? делаю так: if DT2.ADOQuery4.RecordCount<>0 then for b := 0...

Как Пропускать пустые ячейки В DBGrid
Ребята помогите уже неделю не могу решить задачку. У меня есть ADOQuery ADOTable DBGrid И Кнопка. При нажатии на кнопку должно...

16
 Аватар для albor
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
02.06.2012, 22:52
Чудес не бывает. Наверно во второй таблице все таки нет записей с соответствующим ключом.
0
Shiningemerald
 Аватар для Electroflower
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
03.06.2012, 08:12  [ТС]
albor, в аксесс все добавляется, но выводит только то что между первой и последней, строго
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
03.06.2012, 08:18
Если в БД все добавляется, следовательно ошибка в запросе.
1
Shiningemerald
 Аватар для Electroflower
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
03.06.2012, 08:58  [ТС]
HyperZen, там через adoTable соединено=(
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
03.06.2012, 10:18
Выкладывайте проект, будем смотреть.
0
Shiningemerald
 Аватар для Electroflower
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
03.06.2012, 10:26  [ТС]
спасибо) на интерфейс не обращайте внимания- личные эксперименты
Вложения
Тип файла: rar Форма загрузки1 - копия.rar (1.11 Мб, 51 просмотров)
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
03.06.2012, 10:39
Уточните где ошибка, что то найти не могу

Нашел.
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
03.06.2012, 11:16
Структура БД изначально неправильная. Вот переделанная структура БД.
PS: поля все-таки лучше называть избегая русских символов.
Я бы на Вашем месте добавил на форму компоненты ADOQuery, в Главной таблице, запрос будет выглядеть примерно так:
SQL
1
SELECT * FROM Главная
А на обработчик события DBGrid1CellClick:
Delphi
1
2
3
4
5
6
7
8
procedure TForm2.DBGrid1CellClick(Column: TColumn);
var
  ID: Integer;
begin
  ID := qryGlavnaya.FieldValues['Главная'];
  qryZaderjanie.SQL.Text := 'SELECT * FROM Задержание WHERE id = ' + IntToStr(ID);
  qryZaderjanie.Open;
end;
Вложения
Тип файла: rar db1.rar (27.9 Кб, 16 просмотров)
1
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
03.06.2012, 11:29
Лучший ответ Сообщение было отмечено как решение

Решение

Вот немного переделанный проект, Вам необходимо переделать процедуры добавления новых записей...
Вложения
Тип файла: rar Форма загрузки1 - копия.rar (1.66 Мб, 36 просмотров)
1
Shiningemerald
 Аватар для Electroflower
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
03.06.2012, 13:21  [ТС]
HyperZen, вы волшебник!! exe-шник работает как надо, толкьо вот dpr файл не кмпилируется, ошибка влезает=(
Миниатюры
Выводит пустые строки в DBGrid  
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
03.06.2012, 20:28
Странно, у меня все компилируется (Delphi 2010).
0
Shiningemerald
 Аватар для Electroflower
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
04.06.2012, 21:07  [ТС]
HyperZen, спасибо)я просто переписала копию под ваш сопсоб) все работает)
может вы знаете как сделать удаление из Главной и соответствующей строки в Задержании одновременно??
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
05.06.2012, 19:00
Цитата Сообщение от Electroflower Посмотреть сообщение
может вы знаете как сделать удаление из Главной и соответствующей строки в Задержании одновременно?
Конечно Вечером приду домой скину вариант решения...

Добавлено через 13 часов 25 минут
Для того, чтобы удалить запись из Главной таблицы, достаточно просто получить идентификатор выбранной строки. Сначала удаляем необходимую запись (идентификатор у нас уже есть) в соответствующей подчиненной. Допустим: мы выбрали нужную запись в Главной, получили идентификатор (ID), удалили запись в подчиненной, затем ищем необходимую запись в главной и уничтожаем ее:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.btnDeleteClick(Sender: TObject);
var
  ID: Integer;
begin
  ID := ADOQuery1.FieldValues['ID_Вашей_записи_не_помню_как_зовется'];
      try
        try
          ADOQuery2.SQL.Text :=         //вначале удаляем запись в таблице Задержание (в подчиненной)
          // зачем мы завели ADOQuery2 ? Затем, чтобы не переписывать запрос, который только отображает данные,
          // будем использовать ADOQuery2 только для записи/удаления/обновления записей
          'DELETE FROM Задержание WHERE id = '+IntToStr(ID);
          ADOQuery2.ExecSQL;
          // затем удаляем запись из главной таблицы - "Главная"
          ADOQuery2.SQL.Text := 'DELETE FROM Главная WHERE id = ' + IntToStr(ID);
          ADOQuery2.ExecSQL;
        except
          Application.MessageBox(PChar('Ошибка удаления!'), 'Ошибка!', MB_OK+MB_ICONWARNING);
        end;
      finally
        ADOQuery1.Close;     // переоткрываем запрос, чтобы данные в Гриде сразу обновились
        ADOQuery1.Open;
      end;
end;
1
Shiningemerald
 Аватар для Electroflower
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
05.06.2012, 19:29  [ТС]
HyperZen, удаляет теперь и из базы, но только все время 1-ю запись)
0
 Аватар для HyperZen
498 / 251 / 56
Регистрация: 16.06.2011
Сообщений: 904
06.06.2012, 05:26
Если Вы используете один компонент ADOQuery, то при перезаписи текста запроса курсор автоматически встает в первую позицию, отсюда ID всегда = 0, поэтому и удаляется только первая запись. Смотрите внимательнее процедуры, где этот самый ID присваивается и время, когда присваивается. Если ПОСЛЕ изменения текста запроса - то необходимо переместить его в другое место.
1
Shiningemerald
 Аватар для Electroflower
384 / 117 / 22
Регистрация: 05.01.2012
Сообщений: 951
07.06.2012, 11:35  [ТС]
HyperZen, спасибо за помощь)

Добавлено через 2 минуты
тема закрыта)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.06.2012, 11:35
Помогаю со студенческими работами здесь

Фильтрация DbGrid: игнорировать пустые части фильтров
здравствуйте. можете помочь с кодам ? ADOQuery1.Filter := 'monawile= '''+edit39.Text +''' and procenti = '''+Edit47.Text+''' and ...

Из dbGrid вывести выбранные строки в другой DbGrid
Мне надо вывести Из dbGrid вывести выбранные строки в другой DbGrid, например есть 100 записей в одном DbGrid нужно вывести 1-ю и 4-ю в...

DBGrid выводит не все
Здравствуйте. Обнаружил, что при работе DBGrid выводит не все значение поля, а лишь его часть. К примеру полное значение...

Из DBGrid не выводит числа (экспорт в Ексель)
dbgrid1.DataSource.DataSet.First; Ex:=CreateOleObject('Excel.Application'); ...

DBGrid, который выводит информацию из файла MS Access
Здравствуйте пользователи! Прошу Вас помочь) Имею DBGrid, который выводит информацию из файла MS Access. Возможно ли сделать: если в ячейке...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение 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 - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru