Сортировка И Добавление Записей Delphi 7

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Сортировка И Добавление Записей Delphi 7

Re: Сортировка И Добавление Записей Delphi 7

somewhere » 10 июн 2013, 12:05

Я так думаю, что в Button5Click должны выполнятся запросы. "order by ID" - это часть SQL-запроса. СТруктура БД здесь не представлена, но примерно запрос должен выглядеть как "SELECT * FROM Книги ORDER BY id"

Сортировка И Добавление Записей Delphi 7

lurnette » 06 июн 2013, 22:38

Всем доброго времени суток

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

Смысл такой: есть БД в 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.

Вернуться к началу