Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi An Monatsanfang neue Tabelle erstellen (https://www.delphipraxis.net/9636-monatsanfang-neue-tabelle-erstellen.html)

Praktikant 30. Sep 2003 16:38


An Monatsanfang neue Tabelle erstellen
 
Folgendes Problem:
Ich habe eine Tabelle die alle Aktionen loggt (bzw. muss ich noch so was realisieren), jeden neuen Monat soll automatisch eine neue Tabelle mit Bezeichnung 'Monat_Jahr_Name.db' erstellt werden.

But how :?:

czapie 30. Sep 2003 16:50

Re: An Monatsanfang neue Tabelle erstellen
 
Also ich gehe jetzt mal davon aus, dass du das in Delphi machst.

Überprüf doch beim Programmstart, ob ein neuer Monat angefangen hat, und wenn ja, dann erzeugst du eben mit dem Datenbankzugriff eine neue Tabelle:
von mir uas mit SQL
SQL-Code:
CREATE TABLE "monat_jahr_db"
....
Meinst du doch so oder?

Czapie.

Praktikant 30. Sep 2003 17:02

Re: An Monatsanfang neue Tabelle erstellen
 
Im Prinzip ja.
Nur darf er nicht beim Programmstart schauen ob ein neuer Monat begonnen hat, sondern bei jeder Log-Aktion.
Dann noch das Problem wie ich das Datum und Jahr von selbst zuweise.
Sprich wie muss der Quellcode zu der Fuinktion aussehen?!

czapie 30. Sep 2003 17:14

Re: An Monatsanfang neue Tabelle erstellen
 
-> Delphihilfe!

Na über die Funktion Date kommst an das Datum, wa du dann über Datetostr in einen Stringumwandeln
kannst, diesen kannst du dann zerlegegen und so zurechtbauen, wie du deinen Tabellennamen haben willst.
Noch ein paar weiterführende Links:


http://www.grundlagen.delphi-source....atumzeit.shtml

http://www.delphi-fundgrube.de/faq04.htm

Ansonsten hilft auch die Delphi-Hilfe,

viel Erfolg,

Czapie.

Praktikant 1. Okt 2003 09:55

Re: An Monatsanfang neue Tabelle erstellen
 
neuer Tag, neues Glück!
Sieht bisher nicht schlecht aus,thx für die links.
Mir reichen zwar die standard timefunktionen aus sysutil, aber trotzdem die frage wie ich an die unít JclDateTime komme?

Praktikant 1. Okt 2003 10:37

Re: An Monatsanfang neue Tabelle erstellen
 
Problem:
Wie kann ich überprüfen, ob die Tabelle mit variablem Namen existiert?
Bekomme es nur mit festem Namen hin.
Habe es mal so probiert:
Delphi-Quellcode:
procedure TFormloggen.FormActivate(Sender: TObject);
var Present: TDateTime;
    Year, Month, Day: Word;
begin
  Present:= Now;
  DecodeDate(Present, Year, Month, Day);
  EditTime.Text := IntToStr(Month)+'_'+IntToStr(Year)+'_logfile';

//Evtl. vorhandene Tabelle nicht überschreiben
if not Table*hier die Variable die ich so nicht machen darf*.Exists then
begin
  with Table***var*** do
  begin
    .
    .
    .
Problem gelöst!
Folgendermassen hab ich es gemacht. Dem Editfeld 'EditTime' habe ich den Dateinamen zugewiesen. Nun einfach eine if-Abfrage, in welcher der Tabellenname mit dem editfeld verglichen wird:
Delphi-Quellcode:
  if TableLogfile.TableName <> EditTime.Text then

Praktikant 1. Okt 2003 14:11

Re: An Monatsanfang neue Tabelle erstellen
 
war doch nix. Jetzt ist es nur so, dass er jedes mal ein neues file erstellt, da der dateiname (10_2003_logfile) vom TableName abweicht.
Dafür gibt's ja den Befehl 'TFileName' oder? Aber weiss nicht wie ich den verwenden muss oder kann.

Praktikant 6. Okt 2003 12:12

Re: An Monatsanfang neue Tabelle erstellen
 
immer noch nicht weiter bin... :pale:

MrSpock 6. Okt 2003 13:11

Re: An Monatsanfang neue Tabelle erstellen
 
Hallo Praktikant,

falls du Paradox Tabellen erzeugst, musst du einfach nur noch die Endung '.DB' anhängen:

Delphi-Quellcode:
if UpperCase(TableLogfile.TableName) <> UpperCase(EditTime.Text+'.DB') then

Praktikant 6. Okt 2003 13:58

Re: An Monatsanfang neue Tabelle erstellen
 
das ändert nichts, es wird einfach immer eine neue tabelle erstellt:
Delphi-Quellcode:
if Tablelogfile.TableName <> EditTime.Text then
  begin
    with Tablelogfile do
    begin
    //erzeugen der spalten usw.
    CreateTable;


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:54 Uhr.
Seite 1 von 2  1 2   

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