![]() |
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 :?: |
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:
Meinst du doch so oder?
CREATE TABLE "monat_jahr_db"
.... Czapie. |
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?! |
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: ![]() ![]() Ansonsten hilft auch die Delphi-Hilfe, viel Erfolg, Czapie. |
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? |
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:
Problem gelöst!
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 . . . 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
|
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. |
Re: An Monatsanfang neue Tabelle erstellen
immer noch nicht weiter bin... :pale:
|
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
|
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 03:37 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 by Thomas Breitkreuz