Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Felder in Paradox-tabelle definieren? (https://www.delphipraxis.net/24361-felder-paradox-tabelle-definieren.html)

plautzer 19. Jun 2004 21:08


Felder in Paradox-tabelle definieren?
 
Abend,

In einer paradox-tabelle möchte ich neue Felder erstellen.
Wie kann man die felder vordefinieren (wert:0.00€) und wie kann ich das erste feld als index definieren.

Meine code:

Delphi-Quellcode:
IF NOT FileExists('C:\Programme\***\daten.DB') THEN
        BEGIN
        with Table1 do
                begin
                active := false;
                DatabaseName := 'Miete';
                tabletype := TTParadox;
                tablename := 'daten';
                Name := 'Table1';

        with FieldDefs do
                begin
                 clear;
                 with AddFieldDef do
                        begin
                        name := 'whg';
                        DataType := ftinteger;
                        end;
                end;
Ich danke euch.

Plautzer

Albi 20. Jun 2004 08:02

Re: Felder in Paradox-tabelle definieren?
 
Hallo,

einen Index zur Laufzeit kannst Du so erstellen:

Code:
WITH indexdefs DO BEGIN
        clear;
        Add('ID', 'ID', [ixprimary, ixunique]);
        Add('Name','Name',[]);
      END;
      createTable;
Wie das genau geht weiß ich auch nicht. Aber ich würd dann einfach nach dem die Table angelegt worden ist die entsprechenden Felder mit den Daten fühlen. Oder Du läßt die Felder einfach leer und fragst nur ab ob das Feld leer, wenn ja, dann ist das = 0,00?.

plautzer 20. Jun 2004 14:08

Re: Felder in Paradox-tabelle definieren?
 
WIe kann ich das am besten lösen,
das bei start der programms geprüft wird ob die 10 felder leer sind, und wenn ja die mit 0.00€ fülle?
Ich will nähmlich nicht das ich 10mal das hinschreiben muss:

if table1['feld'] = '' ...

Es betrifft eeigentlich alle felder die mit ftcurrency definiert sind,
kann man damit was anfangen?

Plautzer

Albi 21. Jun 2004 06:36

Re: Felder in Paradox-tabelle definieren?
 
Hallo,

liegen die zu prüfenden Felder hineinander? Wenn nicht, dann mußt du jedes Feld einzeln ansprechen. Oder du fühlst die Felder schon gleich nach dem du append aufgerufen hast. Schreibst Dir ne Procedure dazu und wenn Du einen neuen DS anlegst, werden die ensprechenden Felder mit 0.00€ besetzt.

So würde ich das machen, ich weiß nicht ob es geht aber vielleicht kann man den jeweiligen Feldtyp auslesen und anhand dessen die Felder mit 0.00€ besetzen, dann kannst Du das in einer Schleife erledigen.

MrSpock 21. Jun 2004 06:53

Re: Felder in Paradox-tabelle definieren?
 
Hallo plautzer,

du kannst über die Datenbankoberfläche Vorgabewerte definieren, so dass beim Einfügen eines Satzes alle leeren Felder automatisch den gewünschten Wert bekommen. Im Notfall geht das auch noch zur Laufzeit. Dazu hatte ich vor längerer Zeit einmal eine Methode für das Einfügen von Vorgabewerten gepostet.

plautzer 21. Jun 2004 16:03

Re: Felder in Paradox-tabelle definieren?
 
@ALbi
ja, die datensätze liegen alle hintereinandern, kann man da was machen?

@Spock
Das in der Datenbankoberfläche habe ich auch schon gemacht, das geht bloß nicht mehr wenn, die tabelle beim programmstart erstellt.
Der procedure schient mir ein bizzl zu kompliziert, ich werde mir daher selber eine basteln, da das programm für die schule ist und ich zu jeder funktion ein struktogramm malen ... lol

Danke,

Plautzer

Albi 21. Jun 2004 16:43

Re: Felder in Paradox-tabelle definieren?
 
Hallo,

das ist jetzt zwar nicht die schönste Lösung aber es sollte so gehen. Du erstellt die DB, dann brauchst du nur noch Table.Edit und mit einer For ... Do - Schleife die Table durchlaufen und schauen ob deine Felder leer sind.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 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