Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка и добавление записей Delphi 7, с помощью ADO 
:(
    Опции темы
lurnette
Дата 6.6.2013, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 23.9.2012

Репутация: нет
Всего: нет



Всем доброго времени суток
 
Пишу курсовую, завтра сдавать, а преподаватель в последний момент потребовал все переделать

Смысл такой: есть БД в Access, в ней 7 связанных таблиц, и программа на Delphi 7, через ADO все подключается, на форме выводятся через ADOQuery частично записи из всех таблиц

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

Ниже представлен код

Очень надеюсь на вашу помощь

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, StdCtrls,
  RpRenderPDF, RpRenderHTML, RpRenderRTF, RpRender, RpRenderText, RpBase,
  RpFiler, RpCon, RpConDS, RpDefine, RpRave;

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    DataSource1: TDataSource;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Label1: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    CheckBox4: TCheckBox;
    CheckBox5: TCheckBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Memo1: TMemo;
    RadioButton1: TRadioButton;
    RadioButton2: TRadioButton;
    RadioButton3: TRadioButton;
    RadioButton4: TRadioButton;
    DBNavigator1: TDBNavigator;
    RvProject1: TRvProject;
    RvDataSetConnection1: TRvDataSetConnection;
    RvRenderPDF1: TRvRenderPDF;
    RvRenderHTML1: TRvRenderHTML;
    RvRenderRTF1: TRvRenderRTF;
    RvRenderText1: TRvRenderText;
    Label2: TLabel;
    DBGrid1: TDBGrid;
    ADOQuery1: TADOQuery;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    
  private
    { Private declarations }
  public  tb:TGraphicField;
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var field:string;
  fieldlocate:string;
  begin
   if ADOQuery1.Locate('Название',variant(edit1.Text),[])
   then Dbgrid1.SetFocus;
   if ADOQuery1.Locate('Имя',variant(edit2.Text),[])
   then Dbgrid1.SetFocus;
   if ADOQuery1.Locate('Фамилия',variant(edit3.Text),[])
   then Dbgrid1.SetFocus;
   if ADOQuery1.Locate('Жанр',variant(edit4.Text),[])
   then Dbgrid1.SetFocus;
   if ADOQuery1.Locate('Издательство',variant(edit5.Text),[])
   then Dbgrid1.SetFocus;
   if checkbox1.Checked then
begin
   field:='Название'; fieldlocate:='edit1.text'
end
else if checkbox2.Checked then
begin
   field:='Имя'; fieldlocate:='edit2.text';
end
else if checkbox3.Checked then
begin
   field:='Фамилия'; fieldlocate:='edit3.text';
end
else if checkbox3.Checked then
begin
   field:='Жанр'; fieldlocate:='edit4.text';
end
else if checkbox3.Checked then
   field:='Издательство'; fieldlocate:='edit5.text';
if ADOQuery1.Locate(field,variant(fieldlocate),[])
   then Dbgrid1.SetFocus;
end;

procedure TForm1.Button2Click(Sender: TObject);
var LookupResult:variant;
i:integer;
begin
memo1.Lines.Add('');
LookupResult:=ADOQuery1.Lookup(
'Название',variant(edit6.Text),'Имя;Фамилия;Жанр;Издание;');
if VarType(LookupResult)=varNull then
showMessage('Запись не найдена! ' +edit6.Text)
else if varIsArray(LookupResult) then
begin
for I := 0 to 3 do
  memo1.Lines.Add(lookupresult[I]);
end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form2.show
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
RvProject1.SetProjectFile(ExtractFilePath(Application.ExeName)+'Project1.rav');
RvProject1.ExecuteReport('Report1');
RvProject1.Close;
end;

procedure TForm1.Button5Click(Sender: TObject); // как видите, здесь я уже попыталась осуществить сортировку, только вот при нажатии на кнопку ничего не происходит
begin
if radiobutton1.Checked then
begin ADOQuery1.SQL.Add('order by ID'); ADOQuery1.Open;
end;
if radiobutton2.Checked then
begin ADOQuery1.SQL.Add('order by Название'); ADOQuery1.Open;
end;
if radiobutton3.Checked then
begin ADOQuery1.SQL.Add('order by Имя'); ADOQuery1.Open;
end;
if radiobutton4.Checked then
begin ADOQuery1.SQL.Add('order by Фамилия'); ADOQuery1.Open;
end;
end;

end.

PM MAIL   Вверх
Akella
Дата 7.6.2013, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



тек переволновался, наверное, что даже вопрос забыл задать  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0865 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.