С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/29: Рейтинг темы: голосов - 29, средняя оценка - 4.52
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
1

Заполнение ListView из БД

11.04.2016, 13:47. Показов 6031. Ответов 29
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал вот такой код, но при запуске программы ListView не заполняется а программа выдает ошибку.

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
with ibQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM DOCS');
    Open;
    First;
    ListVIew1.Items.BeginUpdate;
    try
      ListView1.Clear;
      while not Eof do
      begin
       with ListView do
       begin
        ViewStyle := vsReport;
    NewColumn := Columns.Add;
    NewColumn.Caption := 'Наименование';
    NewColumn := Columns.Add;
    NewColumn.Caption := 'Тип';
    NewColumn := Columns.Add;
    NewColumn.Caption := 'Дата создания';
      end;
  Item := ListView1.Items.Add;
  Item.Caption := ibquery1.FieldByName('NAMEDOC').AsString;
  Item.SubItems.Add(ibquery1.FieldByName('TYPEDOC').AsString);
  Item.SubItems.Add(ibquery1.FieldByName('DATADOC').AsString);
end;
    finally
      ListView1.Items.EndUpdate;
    end;
  end;
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.04.2016, 13:47
Ответы с готовыми решениями:

Заполнение listview
Подскажите, как добавить столбцы и заполнить строки, при нажатии кнопки?

Заполнение ListView
Создаю в xaml-разметке чистый ListView. Мне его надо заполнить программно. Причем количество...

Заполнение ListView
Подскажите, как заполнять ListView. Я пробую заполнить так: ListView->AddItem("Текст",...

Заполнение ListView из БД
Добрый день! Прошу помощи у тех кто владеет Delfi Нужно код на дельфи переписать на c++ builder...

29
5583 / 4433 / 1080
Регистрация: 29.08.2013
Сообщений: 27,729
Записей в блоге: 3
11.04.2016, 15:03 2
Цитата Сообщение от klausteam Посмотреть сообщение
а программа выдает ошибку
какую?

Добавлено через 2 минуты
ааааааааа, смотрите

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
with ibQuery1 do
begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM DOCS');
    Open;
        with ListView do
        begin
            ViewStyle := vsReport;
            NewColumn := Columns.Add;
            NewColumn.Caption := 'Наименование';
            NewColumn := Columns.Add;
            NewColumn.Caption := 'Тип';
            NewColumn := Columns.Add;
            NewColumn.Caption := 'Дата создания';
        end;
 
    ListVIew1.Items.BeginUpdate;
    try
    ListView1.Clear;
    while not Eof do
    begin
        Item := ListView1.Items.Add;
        Item.Caption := ibquery1.FieldByName('NAMEDOC').AsString;
        Item.SubItems.Add(ibquery1.FieldByName('TYPEDOC').AsString);
        Item.SubItems.Add(ibquery1.FieldByName('DATADOC').AsString);
        query.next;
    end;
finally
ListView1.Items.EndUpdate;
end;
end;
Добавлено через 1 минуту
делаем OPEN
формируем колонки
а далее закручиваем цикл в котором заполняем ПОСТРОЧНО
заполнили строку и делаем Query.Next для перехода на другую строки и опять заполняем колонки
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 16:23  [ТС] 3
Вот
Миниатюры
Заполнение ListView из БД   Заполнение ListView из БД  
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 16:27  [ТС] 4
Цитата Сообщение от qwertehok Посмотреть сообщение
делаем OPEN
формируем колонки
а далее закручиваем цикл в котором заполняем ПОСТРОЧНО
заполнили строку и делаем Query.Next для перехода на другую строки и опять заполняем колонки
OPEN у меня стоял, а вот NEXT я действительно пропустил, сейчас попробую.......
0
5583 / 4433 / 1080
Регистрация: 29.08.2013
Сообщений: 27,729
Записей в блоге: 3
11.04.2016, 16:30 5
Цитата Сообщение от klausteam Посмотреть сообщение
а вот NEXT я действительно пропустил
ты еще зачем то в цикле стал колонки добавлять
а зачем?
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 16:36  [ТС] 6
И все равно выскакивает это сообщение.

Добавлено через 3 минуты
Цитата Сообщение от qwertehok Посмотреть сообщение
ты еще зачем то в цикле стал колонки добавлять
а зачем?
Писал по примеру, вот и решил сначала написать ВСЁ как в примере чтобы посмотреть как оно работает, а потом уже выбрать то что нужно. Но он вообще никак не заработал(((
0
5583 / 4433 / 1080
Регистрация: 29.08.2013
Сообщений: 27,729
Записей в блоге: 3
11.04.2016, 16:37 7
еще раз покажи с новыми исправлениями
только не забудь теги поставить
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 16:45  [ТС] 8
Цитата Сообщение от qwertehok Посмотреть сообщение
еще раз покажи с новыми исправлениями
только не забудь теги поставить
Теги это пояснения того что я хотел добиться той или иной строчкой кода?)))
0
5583 / 4433 / 1080
Регистрация: 29.08.2013
Сообщений: 27,729
Записей в блоге: 3
11.04.2016, 16:47 9
нет, теги это разметка кода что бы понятней было
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 16:54  [ТС] 10
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
with ibQuery1 do
begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM DOCS');
    Open;
 
       { with ListView do     //Если убрать скобки именно этот блок будет выдавать ошибку
        begin
            ViewStyle := vsReport;
            NewColumn := Columns.Add;
            NewColumn.Caption := 'Наименование';
            NewColumn := Columns.Add;
            NewColumn.Caption := 'Тип';
            NewColumn := Columns.Add;
            NewColumn.Caption := 'Дата создания';
        end;  }
 
    ListVIew1.Items.BeginUpdate;
    try
    ListView1.Clear;
    while not Eof do
    begin
        Item := ListView1.Items.Add;
        Item.Caption := ibquery1.FieldByName('NAMEDOC').AsString;
        Item.SubItems.Add(ibquery1.FieldByName('TYPEDOC').AsString);
        Item.SubItems.Add(ibquery1.FieldByName('DATEDOC').AsString);
        ibquery1.next;
    end;
finally
ListView1.Items.EndUpdate;
end;
end;
Вот в таком исполнении он заполняет в ListView только одно значение из БД по полю NAMEDOC.
0
5583 / 4433 / 1080
Регистрация: 29.08.2013
Сообщений: 27,729
Записей в блоге: 3
11.04.2016, 17:07 11
я делал так
Delphi
1
2
3
4
5
6
7
8
9
10
11
ListView1.Items.Clear;
 
    while not q.Eof do
    begin
      with ListView1.Items.Add do
      begin
        Caption:=q.Fields[0].AsString;
        SubItems.Add(q.Fields[1].AsString);
      end;
      q.Next;
    end;
и все работает
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 17:18  [ТС] 12
Цитата Сообщение от qwertehok Посмотреть сообщение
и все работает
такая же история, вставляет только первое значение указанное в таблице БД.
0
5583 / 4433 / 1080
Регистрация: 29.08.2013
Сообщений: 27,729
Записей в блоге: 3
11.04.2016, 17:22 13
мой код работает 100%
Цитата Сообщение от klausteam Посмотреть сообщение
вставляет только первое значение указанное в таблице БД.
или создается только один элемент ListView, а остальные пишет в пустоту
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 17:28  [ТС] 14
Цитата Сообщение от qwertehok Посмотреть сообщение
мой код работает 100%
Это я сомнению не подвергаю, так как мой то вообще не работал., а тут движка в нужном направлении.
Цитата Сообщение от qwertehok Посмотреть сообщение
или создается только один элемент ListView, а остальные пишет в пустоту
Скорее всего так и происходит. У меня ещё вот какая засада. На ListView ViewStyle стоит vsIcon, если я его меняю на vsReport, то он мне и первого элемента не прописывает.
0
5583 / 4433 / 1080
Регистрация: 29.08.2013
Сообщений: 27,729
Записей в блоге: 3
11.04.2016, 17:36 15
предлагаю разобраться в работе ListView - научиться добавлять и удалять элементы
а потом уже заполнять его данными из БД
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 17:45  [ТС] 16
В том то всё и дело, что через эдиты он нормально заполняется, а как БД так труба
0
5583 / 4433 / 1080
Регистрация: 29.08.2013
Сообщений: 27,729
Записей в блоге: 3
11.04.2016, 17:48 17
вставьте уже мой код в вашу "программу"
и в режиме report все будет работать
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 18:49  [ТС] 18
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
with ibQuery1 do
begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM DOCS');
    Open;
    ListView1.Items.Clear;
    while not ibquery1.Eof do
      begin
         with ListView1.Items.Add do
      begin
        Caption:=ibquery1.Fields[0].AsString;
        SubItems.Add(ibquery1.Fields[1].AsString);
      end;
      ibquery1.Next;
    end;
end;
То ли лыжи не едут то ли я недалекий. Но вот этот код в моей программе на Reporte не работает вовсе.

Добавлено через 48 минут
Delphi
1
2
3
4
5
6
7
8
var
  Item: TListItem;
begin
  Item := ListView1.Items.Add;
  Item.Caption := Edit1.Text;
  Item.SubItems.Add(Edit2.Text);
  Item.SubItems.Add(Edit3.Text);
  end;
Вот так заполняет за милую душу, но как только едиты меняются на SQL? вся гармония пропадает((((
0
5583 / 4433 / 1080
Регистрация: 29.08.2013
Сообщений: 27,729
Записей в блоге: 3
11.04.2016, 20:31 19
Цитата Сообщение от klausteam Посмотреть сообщение
на Reporte не работает вовсе.
для того что бы узнать что происходит воспользуйтесь отладчиком
0
3 / 3 / 1
Регистрация: 08.04.2016
Сообщений: 79
11.04.2016, 21:55  [ТС] 20
Цитата Сообщение от qwertehok Посмотреть сообщение
для того что бы узнать что происходит воспользуйтесь отладчиком
Я не могу понять на какой строке программы брейк поставить)))) Я с отладчиком еще меньше знаком чем с листом с которым бьюсь уже целый день.

Добавлено через 59 минут
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
begin
  with IBQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT * FROM DOCS');
    Open;
    ListView1.Items.Clear;
    while not IBQuery1.Eof do
    begin
      with ListView1.Items.Add do
      begin
        Caption := IBQuery1.Fields[0].AsString;
        SubItems.Add(IBQuery1.Fields[1].AsString);
      end;
      IBQuery1.Next;
    end;
  end;
Поставил точку на Next И вот что получается,Caption почему то принимает значение названия формы.
IBQuery1.Fields[0].AsString;
SubItems.Add(IBQuery1.Fields[1].AsString); Заполняются значениями из таблицы, но в ListView они почему то не заносятся.

Добавлено через 3 минуты
Так же попробовал поставить ShowMessage(Caption) в 15 строчку и получается что выводится сообщение с названием формы а не со значением IBQuery1.Fields[0].AsString;
0
11.04.2016, 21:55
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.04.2016, 21:55
Помогаю со студенческими работами здесь

Заполнение ListView из БД
Есть одна активити, в ней 2 текстовых поля и кнопка, отправляющая содержимое этих полей как строку...

Заполнение listview
Доброго дня! Как заполнять такой listview?

Заполнение ListView
Привет всем столкнулся с такой проблемой: есть следующий ListView <ListView Height="313"...

Заполнение ListView с XML
Здравствуйте, мне нужна помощь, не могу понять как заполнить ListView с XML файла скаченного с...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
UserScript для подсветки кнопок языков программировани­­­­я в зависимости от текущего раздела
volvo 13.01.2025
В результате работы этого скрипта подсвечиваются нужные кнопки не только в форме быстрого ответа, но и при редактировании сообщения: / / ==UserScript== / / @name CF_DefaultLangSelect / / . . .
Введение в модели и алгоритмы машинного обучения
InfoMaster 12.01.2025
Машинное обучение представляет собой одну из наиболее динамично развивающихся областей искусственного интеллекта, которая фокусируется на разработке алгоритмов и методов, позволяющих компьютерам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru