Newsgroup: it.comp.lang.delphi
Titolo: Domanda sugli indici

Salve a tutti;
Cito dal manuae di Delphi7:
"Se non c'è alcun indice definito che implementa la sequenza di ordinamento
desiderata, è possibile creare uno pseudo-indice utilizzando la proprietà
IndexFieldNames.
IndexName e IndexFieldNames sono reciprocamente esclusivi. L'impostazione 
della proprietà di uno cancella i valori impostati per l'altro."
Per CREARE EX-NOVO un'indice DBase, quindi estensione MDX, quale set comandi 
devo usare?
Se IndexFieldNames è uno pseudo-indice non è memorizzato sul disco. Quindi 
ha valore temporaneo.
Le tabelle DBase da me usate usano degli indici che, per ora, ho creato e 
manutenuto, da applicazioni esterne dall'applicativo. Però dovrei creare 
qualcosa che rigeneri gli indici. E non so cosa fare.
Carlo. 

 devo usare?
Questo codice fa quello che cerchi.
copio incollo unit e pas.
-------------------------------------------------------------------------
main.pas
unit Main;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
  Dialogs, StdCtrls, DB, DBTables;
type
  TfrmMain = class(TForm)
    btEsci: TButton;
    TabSCOCLI: TTable;
    Button1: TButton;
    procedure btEsciClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    procedure CreaTab;
  public
    { Public declarations }
  end;
var
  frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.btEsciClick(Sender: TObject);
begin
   Close;
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
   CreaTab;
end;
procedure TfrmMain.CreaTab;
begin
  With TabSCOCLI do
  Try
    CreateTable;
    MessageDlg('Tabella creata', mtInformation, [mbOK], 0);
    Close;
    AddIndex('SCOCLI1', 'CODCLI + CATMER', [ixExpression]);
    MessageDlg('Indice creato', mtInformation, [mbOK], 0);
  Except  
    MessageDlg('Errore', mtError, [mbOK], 0);
  End;
end;
end.
---------------------------------------------------------------------------------------------
Main.dfm
object frmMain: TfrmMain
  Left = 338
  Top = 273
  Width = 416
  Height = 203
  Caption = 'Crea DBF'
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object btEsci: TButton
    Left = 328
    Top = 140
    Width = 75
    Height = 25
    Cancel = True
    Caption = 'Esci'
    TabOrder = 0
    OnClick = btEsciClick
  end
  object Button1: TButton
    Left = 182
    Top = 140
    Width = 75
    Height = 25
    Caption = 'Crea Tabella'
    TabOrder = 1
    OnClick = Button1Click
  end
  object TabSCOCLI: TTable
    Exclusive = True
    FieldDefs = <
      item
        Name = 'CODCLI'
        DataType = ftString
        Size = 6
      end
      item
        Name = 'CATMER'
        DataType = ftString
        Size = 8
      end
      item
        Name = 'SCONTO1'
        DataType = ftFloat
      end
      item
        Name = 'SCONTO2'
        DataType = ftFloat
      end
      item
        Name = 'SCONTO3'
        DataType = ftFloat
      end
      item
        Name = 'PROVV'
        DataType = ftFloat
      end>
    StoreDefs = True
    TableName = 'SCOCLI.DBF'
    TableType = ttDBase
    Left = 272
    Top = 36
  end
end
--------------------------------------------------------------------------->
-- 
Morde. 
FAQ di icld (beta-version): 
http://icld.altervista.org
 
M-List di icld: 
http://it.groups.yahoo.com/group/icld/

 -------------------------------------------------------------------------
...


 ha scritto nel messaggio 
news:18bojnaaq1jb9.1...@40tude.net...


 Perchč?
Non conosco visual dbase, purtroppo.
DBF a parte, gli mdx sono creaturine assai suscettibili, sopratutto quando
si tratta di indici ad espressione. 
Ti diro' di piu': i dbf creati in questo modo, non sono gestibili da tutti
i manager. Ad esempio, un dbf creato con delphi e' gestibile dal database
desktop, ma dal database manager della zucchetti (per la quale sviluppo
procedure agganciandomi al loro gestionale) e' impossibile farlo.
Insomma, il bailamme e' totale: uno spiraglio di luce potresti intravederlo
cercando su questo ng: 
http://groups.google.it/group/borland.public.bde?hl=it&lr=&ie=UTF-8
fai delle ricerche significative quali "create runtime", "addindex", ecc...
Di piu' non riesco a fare :(
Ciao!


 ha scritto nel messaggio 
news:d83gmo$1ea6$1...@newsreader2.mclink.it...
