Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi unerklärliche Fehlermeldungen (https://www.delphipraxis.net/52012-unerklaerliche-fehlermeldungen.html)

rascalpo 22. Aug 2005 17:05

Datenbank: Paradox • Version: 7 • Zugriff über: BDE (var Tbl: TTable)

unerklärliche Fehlermeldungen
 
Mein Programm enthält eine Paradox-Datenbank mit
Delphi-Quellcode:
Tbl.TableType := ttParadox;
Tbl.Active := false;
with Tbl.FieldDefs do begin
  clear;
  Add(A,ftString,4,true);
  Add(B,ftString,4,false);
  for i := 1 to Anzahl do Add(IntToStr(i),ftWord,0,false);
end;
Tbl.IndexDefs.add(A,A,[ixPrimary]);
...
bislang lief alles prima.

Nur nach:
Delphi-Quellcode:
for i := 1 to Anzahl do if not Tbl[IntToStr(i)].IsNull then ...
Im Projekt Bla.exe ist ein Exception der Klasse EOleError aufgetreten. Meldung: 'Variante referenziert kein Automatisierungsobjekt'.

Oder nach:
Delphi-Quellcode:
for i := 1 to (Anzahl-1) do begin
  Tbl[IntToStr(i+1)] := Tbl[IntToStr(i)];
  Tbl[IntToStr(i)] := Null // <-- hier der Fehler
end;
...
Tbl[B] := Null; // <-- falls es bis hierhin läuft, ist hier auch der Fehler...
...
Tbl[B].Clear; // hier gleiches Problem
...
if (Tbl[B] = '') then .. // das übliche...
Im Projekt Bla.exe ist ein Exception der Klasse EDatabaseError aufgetreten. Meldung: 'Ungültige Variant-Typumwandlung'.

dann hätte ich noch ungültige Variantoperation auf Lager:
Delphi-Quellcode:
var WertA: variant;
begin
  WertA := Tbl[B]; // hier: Tbl[B] = 'c';
...
Wäre sehr dankbar wenn ihr mir helft.

shmia 22. Aug 2005 17:38

Re: unerklärliche Fehlermeldungen
 
Zitat:

Delphi-Quellcode:
for i := 1 to Anzahl do Add(IntToStr(i),ftWord,0,false);

Damit hast du den Grundstein für viele Probleme gelegt!!
Du gibst deinen Felder einen Namen, der nur aus Ziffern besteht.
Stellt dir vor, was Delphi zu folgender Deklaration sagen würde:
Delphi-Quellcode:
var
   1 : integer;
   2 : string;
Die BDE enthält intern einen SQL-Interpreter, der durch deine Feldnamen in Schwierigkeiten gerät.
goldene Regel für Datenbankersteller:
Feld- und Tabellennamen werden nach gleichen Regeln gebildet, wie Bezeichner in Pascal/Delphi.
Bei Paradox oder dBase sind als zusätzliche Einschränkung nur Grossbuchstaben und max. 10 Zeichen (wg. dBase) möglich.

rascalpo 22. Aug 2005 18:51

Re: unerklärliche Fehlermeldungen
 
also. den Quellcode hab ich umgeändert:
Delphi-Quellcode:
for i := 1 to Anzahl do Add('C'+IntToStr(i),ftWord,0,false);
... usw.
das ändert jedoch nichts.:wall:

Ich beginne mich langsam zu fragen, wieso in der einen Exception ein eOleError auftritt...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:57 Uhr.

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