TClientDataSetのAddIndex
8692 ワード
unit Unit2;
interface
uses
SysUtils, Classes, DB, DBClient;
type
TDataModule2 = class(TDataModule)
ClientDataSet1: TClientDataSet;
DataSource1: TDataSource;
procedure DataModuleCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule2: TDataModule2;
implementation
uses
Dialogs;
{$R *.dfm}
procedure TDataModule2.DataModuleCreate(Sender: TObject);
begin
with DataModule2.ClientDataSet1 do
begin
FileName := 'test.cds';
with TStringField.Create(DataModule2.ClientDataSet1) do
begin
FieldName := 'test';
Name := 'ClientDataSet1test';
DataSet := DataModule2.ClientDataSet1;
end;
CreateDataSet;
with IndexDefs.AddIndexDef do //
begin
Name := 'Indextest';
Fields := 'test';
Options := [ixDescending];
end;
// AddIndex('IndexTest', 'test', []); ,
---------------------------Project1---------------------------ClientDataSet1: Index 'Indextest' not found.---------------------------OK------------------
IndexName := 'Indextest';
if FileExists('test.cds') then
LoadFromFile('test.cds')
end;
end;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBClient, Grids, DBGrids;
type
TForm1 = class(TForm)
Button1: TButton;
DBGrid1: TDBGrid;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
Unit2;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
with DataModule2.ClientDataSet1 do
begin
Append;
FieldByName('test').AsString := 'test1';
Post;
end;
end;
end.
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {DataModule2: TDataModule};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TDataModule2, DataModule2);
Application.CreateForm(TForm1, Form1);
Application.Run;
end.