Тема: dbf в delphi
Показать сообщение отдельно
  #25  
Старый 31.08.2012, 15:46
Andrej-zhe Andrej-zhe вне форума
Прохожий
 
Регистрация: 28.08.2012
Адрес: Курск
Сообщения: 49
Репутация: 10
По умолчанию

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    DataSource1: TDataSource;
    OpenDialog1: TOpenDialog;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Label1: TLabel;
    Label2: TLabel;
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    Button1: TButton;
    Query1: TQuery;
    Table1: TTable;
    procedure N1Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var tblSbor: TTable;
begin
Query1.Close;
Query1.SQL.Text:='SELECT d.kod, d.name, o.n FROM duh.dbf d, oper.dbf o, oper_ozo.dbf z WHERE d.type||d.subtype||d.kod = o.type||o.subtype||o.kod AND d.type||d.subtype||d.kod = z.type||z.subtype||z.kod';
Query1.Open;
if Query1.RecordCount>0
  then
  begin
  tblSbor.Open;
  while not Query1.Eof do
    begin
    tblSbor.Insert;
    tblSbor.FieldByName('kod').Value:=Query1.FieldByName('kod').Value;
    tblSbor.FieldByName('name').Value:=Query1.FieldByName('name').Value;
    tblSbor.FieldByName('n').Value:=Query1.FieldByName('n').Value;
    tblSbor.Post;
    Query1.Next;
    end;
  end
  else ShowMessage('Ни одной записи не найдено');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OpenDialog1.InitialDir := ExtractFilePath(Application.ExeName);
end;

procedure TForm1.N1Click(Sender: TObject);
begin
  if OpenDialog1.Execute then begin
    ADOConnection1.Close;

    ADOConnection1.ConnectionString := Format('Provider=VFPOLEDB.1;Data Source=%s;'
      + 'Mode=ReadWrite;Extended Properties="";User ID="";Password="";'
      +'Mask Password = False; '
      + 'Cache Authentication=False;Encrypt Password=False;'
      + 'Collating Sequence = RUSSIAN; DSN = ""',[ExtractFilePath(OpenDialog1.FileName)]);

      ADOQuery1.Close;
      ADOQuery1.SQL.Clear;
      ADOQuery1.SQL.Add(Format('select * from %s',
        [ExtractFileName(OpenDialog1.FileName)]));
      ADOQuery1.Active := True
end;
end;


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

end.
Ответить с цитированием