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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2016, 05:57   #1
jirtreck
Пользователь
 
Регистрация: 29.06.2011
Сообщений: 56
По умолчанию DBgrid некорректно отображает данные из БД

Сделал БД на основе Access. В файл новые данные добавляются без проблем, но сама программа их не читает.

Вернее читает, но выводит заместо данных пустые строки.
Грид расширяется на столько строк вниз, сколько данных я добавил, при этом отображения их нет.


Код 3 форм. Так получилось, что основной юнит, с которого запускается программа, третий, а не первый

Код:
unit Unit3;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, ExtCtrls, Menus, Grids, DBGrids, StdCtrls;

type
  TForm3 = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    Panel1: TPanel;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    procedure N3Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

implementation

uses Unit1, Unit2;

{$R *.dfm}

procedure TForm3.N2Click(Sender: TObject);
begin
form3.ADOQuery1.Append;
form1.Show;
end;

procedure TForm3.N3Click(Sender: TObject);
begin
form1.Show;
end;

procedure TForm3.N4Click(Sender: TObject);
begin
form2.Show;
end;

end.



unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Mask, DBCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Транспорт: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    DBEdit1: TDBEdit;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit3;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
if Form3.ADOQuery1.Modified then form3.ADOQuery1.Post;

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
form1.Close;
end;

end.



unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit3;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
form3.ADOQuery1.Delete;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
form2.Close;
end;

end.
Вложения
Тип файла: zip Автобусный парк.zip (545.3 Кб, 15 просмотров)

Последний раз редактировалось jirtreck; 05.07.2016 в 06:20.
jirtreck вне форума Ответить с цитированием
Старый 05.07.2016, 06:38   #2
jirtreck
Пользователь
 
Регистрация: 29.06.2011
Сообщений: 56
По умолчанию

Возможно это важно:

Каждый раз когда открываю проект, выскакивает ошибка о том, что не удается найти файл.
Приходится прожимать заново ConnectionString в ADOConnection, и ставить галочку на Active в ADOQuery.

SQL такой: Select * from DBTel ORDER BY fam
jirtreck вне форума Ответить с цитированием
Старый 05.07.2016, 07:28   #3
jirtreck
Пользователь
 
Регистрация: 29.06.2011
Сообщений: 56
По умолчанию

Максимально полно уже ответили

Последний раз редактировалось Аватар; 05.07.2016 в 07:50.
jirtreck вне форума Ответить с цитированием
Старый 05.07.2016, 08:23   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от jirtreck Посмотреть сообщение
Максимально полно уже ответили
Простите, не понял. Кто ответил? Проблема уже решена?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 05.07.2016, 09:52   #5
Ernest027
Форумчанин
 
Регистрация: 27.04.2015
Сообщений: 437
По умолчанию

Запустил твой проект. У тебя данные в таблице dbgrid не отображались.
Удалил dbgrid, кинул новый dbgrid, подключил и все заработало.
Установи пакет ehlib, классное дополнение.
Ernest027 вне форума Ответить с цитированием
Старый 05.07.2016, 10:34   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Вернее читает, но выводит заместо данных пустые строки.
В списке показа (колонках) DBGrid указаны не те поля.
Для указания заголовков колонок ОТЛИЧНЫХ от имен полей используется Title.Caption

Цитата:
Удалил dbgrid, кинул новый dbgrid
И не стал настраивать статический список колонок показа!...
Цитата:
, подключил и все заработало.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 05.07.2016 в 10:40.
evg_m на форуме Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Chrome toggle device mode некорректно отображает устройство Bender1000 HTML и CSS 1 16.07.2015 09:05
Не отображает DBGrid MixanMM БД в Delphi 8 19.06.2015 17:41
Отчет не отображает данные lionforever C# (си шарп) 7 13.04.2012 14:37
DBGrid не отображает все колонки Elementig Компоненты Delphi 4 11.04.2011 16:44
DBGrid не отображает данные после добавления k0ks67 БД в Delphi 4 10.12.2009 21:17