Board index » delphi » index out of date !!!

index out of date !!!

I use Delphi 4 with BDE 5.01 and paradox tables in pear to pear
network of 5 win95 computers I have this application.

I keep getting index out of date error.
I rebuild the files
in 2 hours again  the same...
even when only 1 or 2 people use the program
what are the possible sources of this and how do I fix it.

thank you for your help.

kemalet...@aol.com

 

Re:index out of date !!!


  Are you closing your tables when the app. closes, or is the error happening
when you post data?

--
Jason Wallace
SL Software
Dark...@SLSoftware.reno.nv.us
--
"We are Microsoft.  You will be assimilated.  Resistance is Futile."
--

Quote
Kemal Korucu <kemalet...@aol.com> wrote in message

news:72d2jk$8r624@forums.borland.com...
Quote
>I use Delphi 4 with BDE 5.01 and paradox tables in pear to pear
>network of 5 win95 computers I have this application.

>I keep getting index out of date error.
>I rebuild the files
>in 2 hours again  the same...
>even when only 1 or 2 people use the program
>what are the possible sources of this and how do I fix it.

>thank you for your help.

>kemalet...@aol.com

Re:index out of date !!!


See TI3342 at www.inprise.com/devsupport/bde/ti_list.

--
Bill Todd
(Sorry but TeamB cannot answer questions received via email)
(Remove nospam from my email address to contact me for any other reason)

Re:index out of date !!!


Quote
"Kemal Korucu" <kemalet...@aol.com> wrote:
>I use Delphi 4 with BDE 5.01 and paradox tables in pear to pear
>network of 5 win95 computers I have this application.

>I keep getting index out of date error.
>I rebuild the files
>in 2 hours again  the same...
>even when only 1 or 2 people use the program
>what are the possible sources of this and how do I fix it.

Hi Kemal.

If your PC OSs are Win95b (OSR2), check the MS Knowledge Base for
article Q174371.  Also check article pub-90 at Inprise.

Below you'll find some code for checking for bad VREDIR.VXD.

Regards,
Chris Roberts

=========================
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, ComCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

function CheckVredirVersion: boolean;

implementation

{$R *.DFM}

uses
  HyperStr;  // HyperStr functions c/- EFD Systems

function CheckVredirVersion: boolean;
var
   V1, V2, V3, V4: Word;
   VerInfoSize:  DWORD;
   VerInfo:      Pointer;
   VerValueSize: DWORD;
   VerValue:     PVSFixedFileInfo;
   Dummy:        DWORD;
   Filepath, Path, Vxd: string;
begin
  Result := true;
  if not IsWinNT then  // problem VXD only in Win95 currently
  begin
    Vxd := 'vredir.vxd';
    Path := GetSysDir + ';' + GetWinDir;
    if PathScan(Vxd, Path) then  // true if network redirection
installed
    begin
      Filepath := Path + Vxd;
      VerInfoSize := GetFileVersionInfoSize(PChar(Filepath), Dummy);
      GetMem(VerInfo, VerInfoSize);
      GetFileVersionInfo(PChar(Filepath), 0, VerInfoSize, VerInfo);
      VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
      with VerValue^ do
      begin
        V1 := dwFileVersionMS shr 16;
        V2 := dwFileVersionMS and $FFFF;
        V3 := dwFileVersionLS shr 16;
        V4 := dwFileVersionLS and $FFFF;
      end;
      FreeMem(VerInfo, VerInfoSize);
      if (V1 = 4) and (V2 = 0) and (V3 = 0) and (V4 = 1111) then
      begin
        MessageDlg(Format('Unsave version of driver installed.' + #13#10
+
                          'VREDIR.VXD ver %d.%d%d.%d', [V1,V2,V3,V4]) +
#13#10 +
                          'Please install updated version.' + #13#10 +
                          'Refer MS KnowledgeBase' + #13#10 +
                          'Article ID: Q174371' + #13#10 +
                          'Terminating Program!', mtError,[mbOK],0);
        Result := false;
      end;
    end;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  if not CheckVredirVersion then
    Application.Terminate;
end;

end.
==========================

Re:index out of date !!!


Thats for the program Chris.  Where do we find HyperStr?

Chris Roberts <cdrobert_nos...@ctel.com.au> wrote in article
<364a2be2.6880...@forums.inprise.com>...

Quote
> "Kemal Korucu" <kemalet...@aol.com> wrote:

> >I use Delphi 4 with BDE 5.01 and paradox tables in pear to pear
> >network of 5 win95 computers I have this application.

> >I keep getting index out of date error.
> >I rebuild the files
> >in 2 hours again  the same...
> >even when only 1 or 2 people use the program
> >what are the possible sources of this and how do I fix it.

> Hi Kemal.

> If your PC OSs are Win95b (OSR2), check the MS Knowledge Base for
> article Q174371.  Also check article pub-90 at Inprise.

> Below you'll find some code for checking for bad VREDIR.VXD.

> Regards,
> Chris Roberts

> =========================
> unit Unit1;

> interface

> uses
>   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
> Dialogs, StdCtrls, Menus, ComCtrls;

> type
>   TForm1 = class(TForm)
>     Label1: TLabel;
>     procedure FormCreate(Sender: TObject);
>   private
>     { Private declarations }
>   public
>     { Public declarations }
>   end;

> var
>   Form1: TForm1;

> function CheckVredirVersion: boolean;

> implementation

> {$R *.DFM}

> uses
>   HyperStr;  // HyperStr functions c/- EFD Systems

> function CheckVredirVersion: boolean;
> var
>    V1, V2, V3, V4: Word;
>    VerInfoSize:  DWORD;
>    VerInfo:      Pointer;
>    VerValueSize: DWORD;
>    VerValue:     PVSFixedFileInfo;
>    Dummy:        DWORD;
>    Filepath, Path, Vxd: string;
> begin
>   Result := true;
>   if not IsWinNT then  // problem VXD only in Win95 currently
>   begin
>     Vxd := 'vredir.vxd';
>     Path := GetSysDir + ';' + GetWinDir;
>     if PathScan(Vxd, Path) then  // true if network redirection
> installed
>     begin
>       Filepath := Path + Vxd;
>       VerInfoSize := GetFileVersionInfoSize(PChar(Filepath), Dummy);
>       GetMem(VerInfo, VerInfoSize);
>       GetFileVersionInfo(PChar(Filepath), 0, VerInfoSize, VerInfo);
>       VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
>       with VerValue^ do
>       begin
>         V1 := dwFileVersionMS shr 16;
>         V2 := dwFileVersionMS and $FFFF;
>         V3 := dwFileVersionLS shr 16;
>         V4 := dwFileVersionLS and $FFFF;
>       end;
>       FreeMem(VerInfo, VerInfoSize);
>       if (V1 = 4) and (V2 = 0) and (V3 = 0) and (V4 = 1111) then
>       begin
>         MessageDlg(Format('Unsave version of driver installed.' + #13#10
> +
>                           'VREDIR.VXD ver %d.%d%d.%d', [V1,V2,V3,V4]) +
> #13#10 +
>                           'Please install updated version.' + #13#10 +
>                           'Refer MS KnowledgeBase' + #13#10 +
>                           'Article ID: Q174371' + #13#10 +
>                           'Terminating Program!', mtError,[mbOK],0);
>         Result := false;
>       end;
>     end;
>   end;
> end;

> procedure TForm1.FormCreate(Sender: TObject);
> begin
>   if not CheckVredirVersion then
>     Application.Terminate;
> end;

> end.
> ==========================

Re:index out of date !!!


Quote
"Pat Riley" <patri...@piercefire.org> wrote:
>Thats for the program Chris.  Where do we find HyperStr?

http://efd.home.mindspring.com/

Regards,
Chris Roberts

Re:index out of date !!!


Hi:

Check that in all machines the net directory got the same path, this is,
exactly! the same path.
to do this you must have and server machine not used for local purposes or
in one of machines of the net, share a directory like a new drive (with
DOS's subst you can do it), in other words, map a new drive and then use it
to put the net directory.
The general idea is that exist only one net directory path in the whole
net...

Hope help

sorry by mi english...

Re:index out of date !!!


Quote
Kemal Korucu wrote:
> I use Delphi 4 with BDE 5.01 and paradox tables in pear to pear
> network of 5 win95 computers I have this application.

> I keep getting index out of date error.
> I rebuild the files
> in 2 hours again  the same...
> even when only 1 or 2 people use the program
> what are the possible sources of this and how do I fix it.

> thank you for your help.

> kemalet...@aol.com

  hangi paradox table 7, 5 ,4 hangisi
eger aliasinda local share true degil isede bazen bunu yapiyor

Re:index out of date !!!


I am sure there are a number of cleaver people out there who can give detail
advice but from my experience, I dont know any cure but here are a few
checks to make

1.  Is there anyone using the server whilst the data is being saved ?
Particularly the same app on the same table - can you stop this - may be
move data onto a machine which is infrequently used.

2.  Does the table which keeps going out of date have a large number of
index files - can you reduce these ?

3. do you call the dbiprocs function to post changes immediately
(TTable.AfterPost) i.e.

procedure TwinChContract.ContractTableAfterPost(DataSet: TDataset);
begin
  DbiSaveChanges(ContractTable.handle);
end;

4.  Anything like smartdrive cacheing the data and preventing one machine
writting immediately to another?

Regards

Philip Jackson
Hull, UK

Quote
kerem argenc wrote in message <3671D4E1.3EDBC...@tradenet.com.tr>...
>Kemal Korucu wrote:

>> I use Delphi 4 with BDE 5.01 and paradox tables in pear to pear
>> network of 5 win95 computers I have this application.

>> I keep getting index out of date error.
>> I rebuild the files
>> in 2 hours again  the same...
>> even when only 1 or 2 people use the program
>> what are the possible sources of this and how do I fix it.

>> thank you for your help.

>> kemalet...@aol.com

>  hangi paradox table 7, 5 ,4 hangisi
>eger aliasinda local share true degil isede bazen bunu yapiyor

Re:index out of date !!!


There are many posts on this newsgroup regarding making Paradox databases
more stable, reducing the number of Index Out Of Date.  We have had more
problems under Windows/NT.

One "bug" I have found, is that when I have two TQueries open on the same
Paradox table and update one I find somwetimes the Index corrupted
(sometimes).  I've seen this in more than one appliation and can reproduce
this (sort of),

Paul Bartlett
Pa...@drs.co.uk

Quote
Philip Jackson wrote in message <74s31f$go...@forums.borland.com>...
>I am sure there are a number of cleaver people out there who can give
detail
>advice but from my experience, I dont know any cure but here are a few
>checks to make

>1.  Is there anyone using the server whilst the data is being saved ?
>Particularly the same app on the same table - can you stop this - may be
>move data onto a machine which is infrequently used.

>2.  Does the table which keeps going out of date have a large number of
>index files - can you reduce these ?

>3. do you call the dbiprocs function to post changes immediately
>(TTable.AfterPost) i.e.

>procedure TwinChContract.ContractTableAfterPost(DataSet: TDataset);
>begin
>  DbiSaveChanges(ContractTable.handle);
>end;

>4.  Anything like smartdrive cacheing the data and preventing one machine
>writting immediately to another?

>Regards

>Philip Jackson
>Hull, UK

>kerem argenc wrote in message <3671D4E1.3EDBC...@tradenet.com.tr>...
>>Kemal Korucu wrote:

>>> I use Delphi 4 with BDE 5.01 and paradox tables in pear to pear
>>> network of 5 win95 computers I have this application.

>>> I keep getting index out of date error.
>>> I rebuild the files
>>> in 2 hours again  the same...
>>> even when only 1 or 2 people use the program
>>> what are the possible sources of this and how do I fix it.

>>> thank you for your help.

>>> kemalet...@aol.com

>>  hangi paradox table 7, 5 ,4 hangisi
>>eger aliasinda local share true degil isede bazen bunu yapiyor

Re:index out of date !!!


Quote
kerem argenc wrote:
> Kemal Korucu wrote:

> > I use Delphi 4 with BDE 5.01 and paradox tables in pear to pear
> > network of 5 win95 computers I have this application.

> > I keep getting index out of date error.
> > I rebuild the files
> > in 2 hours again  the same...
> > even when only 1 or 2 people use the program
> > what are the possible sources of this and how do I fix it.

> > thank you for your help.

> > kemalet...@aol.com

>   hangi paradox table 7, 5 ,4 hangisi
> eger aliasinda local share true degil isede bazen bunu yapiyor

1 ) some of  secondary indexes may not maintained,
     so delphi unmaintained indexes will not update for each record
updates, may your problem this.
    correcting this problem you can use one of BDE api functions (this
DbiRegenIndexes, for more detail
    look  BDE32.hlp)
2) you can use TDataBase component and alias function.i think those need
run for multi-user app.

Other Threads