Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Übersetzungsfehler: TopGrid DB Grid / MS AccessDB (https://www.delphipraxis.net/6388-uebersetzungsfehler-topgrid-db-grid-ms-accessdb.html)

PlanetofBlade 9. Jul 2003 10:32


Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
Hallöle!

Ich hab mir nen kleines Programm geschrieben :coder: um ein wenig in die Datenbankanwendungen reinzukommen!

Ich hab in der ODBC - Umgebung ne SystemDNS auf die MS Access DB angelegt und in der Delphi BDE auch verknüpft usw.

Das funtzt alles!

Auf mein Formular hab ich dann noch ne TTable - und einen DataSource - Komponente geklatscht! Wenn ich jetzt zur Entwurfszeit den TableName und dann Active bei der TTable - Komponenten mache zeigt das TopGrid DB Grid die Daten an! Prima! Passt alles! :!:

Jetzt wärend der Laufzeit geh ich das Grid durch und frage ab ob das Feld erst mal 0 ist!

Delphi-Quellcode:
  with grdMain do begin
    for i := Rows -1 downto 0 do begin
      if Cell[5, i] = IntToStr(0) then begin
        if Cell[2, 1] < DateToStr(Date) then begin
          slDaten.Add(Cell[3, i] + ' | ' + Cell[4, i]);
          DeleteRows(i, i);
        end
        else if StrToDate(Cell[2, i]) = Date then begin
           if Cell[3, i] <= Time then begin
           slDaten.Add(Cell[3, i] + ' | ' + Cell[4, i]);
           DeleteRows(i, i);
        end;
      end;
    end;
  end;
In der Zeile "if Cell[2, 1] < DateToStr(Date) then begin" bringt der mir jetzt nen Fehler und zwar nen Übersetzungsfehler! :?:

Kann mir einer da helfen? Bin für andere Komponenten eher abgeneingt :wink:

r_kerber 9. Jul 2003 11:01

Re: Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
Zum einen solltest Du den Inhalt von Cell[2, 1] eventuell auslasen und in einen String umwandeln. Meines Wissens arbeitet mit Variant und mir ist nicht klar ob man variant mit String vergleichen kann. Zum anderen ist mir nicht klar, was Du mit dem Vergleich bezwecken willst. Wenn Du zwei Datümer als Strings vergleichst, dann gilt z.B. folgendes:
'01.10.2003' < '02.10.1999'

PlanetofBlade 9. Jul 2003 12:08

Re: Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
ups ... ok!

Sollte natürlich so aussehen :wink:
Delphi-Quellcode:
with grdMain do begin
    for i := Rows -1 downto 0 do begin
      if Cell[5, i] = IntToStr(0) then begin
        if StrToDate(VarToStr(Cell[2, 1])) < Date then begin
          slDaten.Add(Cell[3, i] + ' | ' + Cell[4, i]);
          DeleteRows(i, i);
        end
        else if StrToDate(Cell[2, i]) = Date then begin
           if Cell[3, i] <= Time then begin
           slDaten.Add(Cell[3, i] + ' | ' + Cell[4, i]);
           DeleteRows(i, i);
        end;
      end;
    end;
  end;
So ich wandel jetzt den Variant in nen String und den in nen Date Format! ok! Aber trotzdem kommt immer noch der Übersetzungsfehler!

r_kerber 9. Jul 2003 12:12

Re: Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
Teile doch mal die Fehlermeldung mit!

PlanetofBlade 9. Jul 2003 12:17

Re: Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
Delphi Fehlermeldung:
"Im Projekt Terminplaner.exe ist eine Exception der Klasse EDBEngineError aufgetreten. Meldung: 'Übersetzungsfehler'. Der Wert liegt nicht im gültigen Bereich."

Die nächste Fehlermeldung:
"grdMain: Übersetzungsfehler. Der Wert liegt ausserhalb des Wertebereichs."

r_kerber 9. Jul 2003 12:47

Re: Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
Und was steht in Cell[2, 1]? Bist Du auch sicher das die 1 (Ziffer) kein l (kleiner Buchstabe) ist?

PlanetofBlade 9. Jul 2003 12:49

Re: Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
Ja ich bin mir sicher :P, normalweisse is das teil aj in ner schleife und da sollte i drin stehen zu Testzwecken hab ich das Hardcoded reingemacht!

btw in der Cell[2, i] steht ein Datum im Format "tt.mm.jjjj" also kann ich das ohne Probs umwandeln wie schon geschrieben

"StrToDate(VarToStr(Cell[2, i]))"

r_kerber 9. Jul 2003 12:56

Re: Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
Dann gehe doch lieber durch die TTable. Ich bin mir nämlich gar nicht sicher, ob man aus dem DBGrid die Daten sinvoll herausholen kann! Und Rows kannst Du in einem DBGrid sowieso nicht löschen. Die Anzahl der Zeilen und Spalten ist durch die Datenmenge fest vorgegeben!

PlanetofBlade 9. Jul 2003 13:00

Re: Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
hm ... werd das mal abchecken!

Aber wenn es ein DB - basierendes Grid ist, dann macht das Grid die Aktionen gleich in der Datenbank! Also Zeile löschen -> Datensatz löschen usw.

PlanetofBlade 9. Jul 2003 13:04

Re: Übersetzungsfehler: TopGrid DB Grid / MS AccessDB
 
Ja wie mache ich das dann mit dem TTable? Wie kann ich da durchgehen wenn es mehr als nur ein Datensatz ist! Ich kann ja über die Property "IndexDefs" auf die einzelnen Felder zugreifen aber wie kann ich das sagen Datensatz1, Datensatz2, ..., ... ???


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 Uhr.
Seite 1 von 2  1 2      

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