AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Neue Tabelle aus dem Programm heraus anlegen
Thema durchsuchen
Ansicht
Themen-Optionen

Neue Tabelle aus dem Programm heraus anlegen

Ein Thema von Flo · begonnen am 11. Apr 2003 · letzter Beitrag vom 16. Apr 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Flo
Flo

Registriert seit: 30. Mär 2003
Ort: Süd-Niedersachsen
81 Beiträge
 
Delphi 5 Professional
 
#1

Neue Tabelle aus dem Programm heraus anlegen

  Alt 11. Apr 2003, 10:48
Morgen,
ich muss euch nochmal nerven, sorry

Also, ich möchte per Button eine neue Tabelle erzeugen können, deren Namen ich per Edit-Komponente bestimmen kann. Dann soll man per Combobox zwischen den angelegten Tabellen wechseln können.
Es soll sich um eine Paradox7 Tabelle handeln (wenn dies von Nöten sein sollte)
Bitte um Hilfe.
MfG
Florian

SwapIt!:
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#2
  Alt 11. Apr 2003, 12:05
Eine neue Table kannst Du mit CreateTable erzeugen. In der Hilfe von Delphi ist ein recht ausführliches Beispiel für die Erstellung einer Paradox-Tabelle.
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Benutzerbild von Flo
Flo

Registriert seit: 30. Mär 2003
Ort: Süd-Niedersachsen
81 Beiträge
 
Delphi 5 Professional
 
#3
  Alt 11. Apr 2003, 12:15
Danke für deine Antwort.
Gesucht und gefunden
Aber als ich das ausprobieren wollte, hat sich nichts getan. Er hat mir keine neue Tabelle erzeugt. Ich hab folgenden Code benutzt.
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
begin
{ Evtl. vorhandene Tabelle nicht überschreiben }

if not Table1.Exists then begin

  with Table1 do begin

  { Die Table-Komponente darf nicht aktiv sein }
  Active := False;
  { Zuerst den Tabellentyp beschreiben und die Tabelle benennen }
  DatabaseName := '';
  TableType := ttParadox;
  TableName := edit1.text;

  { Dann die Felder in der Tabelle beschreiben }
  with FieldDefs do begin
    Clear;
      with AddFieldDef do begin
        Name := 'Name';
        DataType := ftInteger;
        Required := True;
        size := 20;
      end;

      with AddFieldDef do begin
        Name := 'Vorname';
        DataType := ftString;
        Size := 20;
        required := true;
      end;

      with AddFieldDef do begin
        Name := 'Note1';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Note2';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Note3';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Note4';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Note5';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Bemerkungen';
        DataType := ftString;
        Size := 150;
        required := false;
    end;
    end;
  { Dann alle Indizes beschreiben }
  with IndexDefs do begin
    Clear;
    { Der erste Index hat keinen Namen, denn er ist ein }
    { primärer Paradox-Schlüssel }
      with AddIndexDef do begin
        Name := 'Name';
        Fields := 'Field1';
        Options := [ixPrimary];
      end;
      with AddIndexDef do begin
        Name := 'Vorname';
        Fields := 'Field2';
        Options := [ixCaseInsensitive];
        end;

       with AddIndexDef do begin
        Name := 'Note1';
        Fields := 'Field3';
        Options := [ixCaseInsensitive];
      end;

       with AddIndexDef do begin
        Name := 'Note2';
        Fields := 'Field4';
        Options := [ixCaseInsensitive];
      end;

       with AddIndexDef do begin
        Name := 'Note3';
        Fields := 'Field5';
        Options := [ixCaseInsensitive];
      end;

       with AddIndexDef do begin
        Name := 'Note4';
        Fields := 'Field6';
        Options := [ixCaseInsensitive];
      end;

       with AddIndexDef do begin
        Name := 'Note5';
        Fields := 'Field7';
        Options := [ixCaseInsensitive];
      end;

       with AddIndexDef do begin
        Name := 'Bemerkungen';
        Fields := 'Field8';
        Options := [ixCaseInsensitive];
      end;
    end;
  { CreateTable-Methode zu Erzeugen der Tabelle aufrufen }
  CreateTable;
  end;

end;
 end;
Ich möchte eine Tabelle mit Name, Vorname´, Note1,2,3,4,5 und Bemerkungen erzeugen. Das hab ich probiert.
Aber wo liegt der Fehler
MfG
Florian

SwapIt!:
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#4
  Alt 11. Apr 2003, 12:33
Kann es sein, dass er wegen:
Code:
if not Table1.Exists then begin
gar nicht anfängt?
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#5
  Alt 11. Apr 2003, 12:40
Hi,

was hälst Du davon (Local) SQL zu verwenden.

SQL-Code:
CREATE TABLE "employee.db"

(
  Last_Name CHAR(20),
  First_Name CHAR(15),
  Salary NUMERIC(10,2),
  Dept_No SMALLINT,
  PRIMARY KEY (Last_Name, First_Name)

)
Du mußt den Code in eine TQuery laden
Eigenschaft 'SQL'
und dann die Query mit ExecSQL ausführen.


Grüsse
Wolfgang
  Mit Zitat antworten Zitat
woki

Registriert seit: 29. Mär 2003
563 Beiträge
 
Delphi 2006 Architect
 
#6
  Alt 11. Apr 2003, 12:41
ach so

mehr Info dazu unter

LocalSQL.hlp
  Mit Zitat antworten Zitat
Benutzerbild von Flo
Flo

Registriert seit: 30. Mär 2003
Ort: Süd-Niedersachsen
81 Beiträge
 
Delphi 5 Professional
 
#7
  Alt 11. Apr 2003, 13:42
Zitat von Mario:
Kann es sein, dass er wegen:
Code:
if not Table1.Exists then begin
gar nicht anfängt?
Dies ist doch der Überschreibungsschutz, oder nicht. Es heißt doch:
Falls table1 nicht vorhanden ist, dann lege es an...oder mache ich da'n Denkfehler ???

Zitat von woki:
Du mußt den Code in eine TQuery laden
Eigenschaft 'SQL'
und dann die Query mit ExecSQL ausführen.
Da ich mich kaum mit SQL beschäftigt habe, kann ich mit deinen Tipps nichts anfangen. Ich hab da auch mal in die Hilfe geguckt...hat mir auch nichts gebracht Hab den Code mal eingefügt und ein bisschen verändert, aber er legt mir keine Tabelle an.

@ woki
Kannste das nicht mal ein bisschen genauer beschreiben (so für Anfänger )
MfG
Florian

SwapIt!:
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#8
  Alt 11. Apr 2003, 13:52
Ich habe Deinen Code mal überarbeitet:
Code:
{ Evtl. vorhandene Tabelle nicht überschreiben }

if not Table1.Exists then begin

  with Table1 do begin

  { Die Table-Komponente darf nicht aktiv sein }
  Active := False;
  { Zuerst den Tabellentyp beschreiben und die Tabelle benennen }
  DatabaseName := ExtractFilePath(edit1.text);
  TableType := ttParadox;
  TableName := ExtractFileName(edit1.text);

  { Dann die Felder in der Tabelle beschreiben }
  with FieldDefs do begin
    Clear;
      with AddFieldDef do begin
        Name := 'Name';
        DataType := ftString;
        Required := True;
        size := 20;
      end;

      with AddFieldDef do begin
        Name := 'Vorname';
        DataType := ftString;
        Size := 20;
        required := true;
      end;

      with AddFieldDef do begin
        Name := 'Note1';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Note2';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Note3';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Note4';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Note5';
        DataType := ftString;
        Size := 3;
        required := false;
    end;

    with AddFieldDef do begin
        Name := 'Bemerkungen';
        DataType := ftString;
        Size := 150;
        required := false;
    end;
    end;
  { Dann alle Indizes beschreiben } 
  with IndexDefs do begin
    Clear;
    { Der erste Index hat keinen Namen, denn er ist ein } 
    { primärer Paradox-Schlüssel } 
  end;
  { CreateTable-Methode zu Erzeugen der Tabelle aufrufen } 
  CreateTable;
  end;

end;
Erst mal hast Du Database frei gelassen. Sofern du keinen Alias gesetzt hast, sollte dort der Pfad stehen.
Dann sollte Table nie mit Pfad sein, habe ich geändert.
Dann kann ein Feld Name vom Typ Integer nie 20 groß sein, ich habe es auf String geändert.
Dann habe ich noch alle Inidizes gelöscht. Was hattest Du denn damit vor? Du wolltest Felder im Index benennen, die Du gar nicht angelegt hast.
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Benutzerbild von Flo
Flo

Registriert seit: 30. Mär 2003
Ort: Süd-Niedersachsen
81 Beiträge
 
Delphi 5 Professional
 
#9
  Alt 11. Apr 2003, 14:46
SUPER

Hat geklappt.....Vielen Dank euch allen..
MfG
Florian

SwapIt!:
  Mit Zitat antworten Zitat
Benutzerbild von Flo
Flo

Registriert seit: 30. Mär 2003
Ort: Süd-Niedersachsen
81 Beiträge
 
Delphi 5 Professional
 
#10
  Alt 12. Apr 2003, 09:59
Ähh, wollte jetzt noch die neuen Tabellen per Combobox aufrufen. Und dann soll man die von der Combobox geöffnete Tabelle mit einer Grid-Komponente anzeigen können. Hab gestern ein bisschen rumprobiert. Habs aber nicht hinbekommen.

Zitat von Flo:
Dann soll man per Combobox zwischen den angelegten Tabellen wechseln können.
Kann mir noch mal jemand helfen. Dann nerve ich euch bestimmt nicht mehr
MfG
Florian

SwapIt!:
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:23 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