Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi "Table is read only" (https://www.delphipraxis.net/63536-table-read-only.html)

DelphiAndreas 20. Feb 2006 13:20

Datenbank: DBase • Zugriff über: BDE

"Table is read only"
 
Hallo,

beim exklusiven öffnen einer Datenbank mit meinem Delphi-Programm (zur Index-Erstellung) bekomme ich den Fehler "Table is read only". Doch dieser Fehler tritt scheinbar nur auf nicht-WinXP-Systemen auf, deshalb ist der Grund für mich schwer nachzuvollziehen.

Hatte jemand schon einmal ein ähnliches Problem bzw. kann mir helfen?

Danke
Gruß,
Andreas

Karstadt 20. Feb 2006 22:46

Re: "Table is read only"
 
wie sieht dein Code aus?

Sonst würde ich einefal eine Logdatei mit schreiben. Was wann gemacht wurde, um die Fehler einzugrenzen.

Greifst du auf irgendwelche DLL zu?

DelphiAndreas 21. Feb 2006 07:57

Re: "Table is read only"
 
nach einigem ausprobieren habe ich herausgefunden, dass der Fehler genau bei der mit dem Pfeil gekennzeichneten "AddIndex"-Anweisung auftritt.

Delphi-Quellcode:
try
                newTable1.Active := true;
        except
                on EDBEngineerror do
                begin

                        newTable1.Exclusive := true;
                        Check(DbiRegisterCallBack(nil, cbINPUTREQ, LongInt(0),
                                sizeof(CBInputDesc), @cbinfo, @myfunc));

           --->>>      newTable1.AddIndex('MEBO_NR', 'MEBO_NR', []);

                        Check(DbiRegisterCallBack(nil, cbINPUTREQ, 0,
                                sizeof(CBInputDesc), nil , nil));

                        newTable1.Exclusive := false;
                end;
        end;
Danke,
Gruß
Andreas

DelphiAndreas 21. Feb 2006 10:48

Re: "Table is read only"
 
was aber nicht bedeutet, dass ich ihn beseitige kann :-( hab mittlerweile einiges geändert, sodass der Quellcode nun so aussieht:
Delphi-Quellcode:
        try
                newTable1.Open;
        except
                on EDBEngineerror do
                begin
                   
                        newTable1.Exclusive := true;
                        newTable1.ReadOnly := FALSE;

                        Check(DbiRegisterCallBack(nil, cbINPUTREQ, LongInt(0),
                                sizeof(CBInputDesc), @cbinfo, @myfunc));
                       
                        newTable1.AddIndex('MEBO_NR', 'MEBO_NR', []);
                       

                        Check(DbiRegisterCallBack(nil, cbINPUTREQ, 0,
                                sizeof(CBInputDesc), nil , nil));

                        newTable1.Exclusive := false;
                end;
        end;
das ändert aber nichts an dem Problem. Kann es damit zu tun haben, dass newTable1 kein "richtiges" Steuerelement ist sondern durch ein
Delphi-Quellcode:
newTable2 := TTable.Create(nil);
erzeugt wird?

DelphiAndreas 21. Feb 2006 13:22

Re: "Table is read only"
 
so :mrgreen: mal wieder alles selbst gelöst, aber für andere will ich hier noch kurz die Lösung festhalten: Ich hab einfach auf den fraglichen PCs die alte BDE 5.0 installiert :-)

Ich glaube ich sollte wirklich Tutorials schreiben... Wenn ich bloß Zeit hätte *gg*

Gruß
Andreas


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz