mikrocontroller.net

Forum: PC-Programmierung Mit Lazarus Tabelle in Datenbank erstellen


Autor: Martin Vogel (oldmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Ich habe die Frage schon in einem Delphi Forum gestellt, aber bisher 
keine Antwort erhalten. Es geht um die Möglichkeit, wie sie in Delphi 
vorhanden war:
   aus einer TTABLE abgeleitete Komponente
Tabelle: TTable;
mittels
   Tabelle:=TTable.Create;
   Tabelle.Database:=....
     und weitere Parameter
sowie Felddeklaration
   Tabelle.FieldDefs.Add('Ident',ftInteger,0,true);
   ....
   ....
   Tabelle.TableCreate;

eine Tabelle auf einer Datenbank zu erzeugen. Die Komponenten von 
Lazarus wehren sich ein wenig und mir gehen die Ideen aus. Kann mir mal 
einer das Brett vom Kopf nehmen.
Gruß oldmax

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Es geht um die Möglichkeit, wie sie in Delphi vorhanden war:

In der Delphi-Hilfe steht es so:

var

  TableFound: Boolean;
begin
  with TTable.Create(nil) do// temporäre TTable-Komponente erstellen
  begin
    try
      { Eigenschaften für die temporäre TTable-Komponente festlegen }
      Active := False;
      DatabaseName := 'DBDEMOS';
      TableName := Edit1.Text;
      TableType := ttDefault;
      { Felder für die neue Tabelle definieren }
      FieldDefs.Clear;
      with FieldDefs.AddFieldDef do begin

        Name := 'First';
        DataType := ftString;
        Size := 20;
        Required := False;
      end;
      with FieldDefs.AddFieldDef do begin
        Name := 'Second';
        DataType := ftString;
        Size := 30;
        Required := False;
      end;
      { Indizes für die neue Tabelle definieren }
      IndexDefs.Clear;
      with IndexDefs.AddIndexDef do begin
        Name := '';
        Fields := 'First';

        Options := [ixPrimary];
      end;
      TableFound := Exists; // prüfen, ob die Tabelle bereits vorhanden 
ist
      if TableFound then
        if MessageDlg('Vorhandene Tabelle ' + Edit1.Text + 
'überschreiben?',
             mtConfirmation, mbYesNoCancel, 0) = mrYes then
          TableFound := False;
      if not TableFound then
        CreateTable; // Tabelle erstellen
    finally
      Free; // temporäre TTable-Komponente abschließend löschen

    end;
  end;
end;

MfG Spess

Autor: oldmax (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Danke für die Antwort, aber Delphi ist nicht das Problem. Lazarus, 
zumindest, das was ich mir hier heruntergeladen habe, kennt keine 
TTable. Daher funktioniert das bei Lazarus in dieser Art nicht. Also, 
das Brett ist noch zu haben...
Gruß oldmax

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Martin Vogel (oldmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Danke für den Link. Dieses Tutorial hatte ich noch nicht gefunden, aber 
die Vorgehensweise mit TDbf bereits versucht. Bisher scheiterte es immer 
zur Laufzeit mit einer Fehlermeldung "unable to open... " zur Laufzeit 
beim Aufruf von CreateTable. Die Compileierung lief fehlerfrei.
Ein Breakpoint in der Procedure CreateTable wurde gar nicht 
angesprochen, daher hatte ich vermutet, das eine Tabelle vorhanden sein 
muß. Aber gut, ich werde mich heute nachmittag gleich mal dransetzen und 
nochmal die entsprechenden Codes prüfen. Danke für deine Mühe.
Gruß oldmax

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Kein Problem. Wie sind denn deine Erfahrungen mit Lazerus? Im Moment 
benutze ich Delphi6 prof. Lohnt sich ein Einstieg/Umstieg?

MfG Spess

Autor: Martin Vogel (oldmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
Wenn du Delphi benutzt, denke ich bleib dabei. Ich habe mir das auch nur 
angetan, weil ich eine freie Software gesucht habe, die Datenbankzugriff 
beinhaltet. Dies ist bei den preiswerten Delphi's nicht der Fall.
Ich arbeite immer noch mit einer D3 Enterprise, die ich von einem 
Programmierer geerbt habe. Da ist man schon verwöhnt in Bezug auf Hilfe 
und Dokumentation. Z.B. ist es unter Delphi kein Problem, in der Hilfe 
bei den Objekten auch in die Vorfahren zu gehen und die Herkunft 
abgeleiteter Variablen anzusehen. Das wirst du bei Lazarus vermissen. 
Auch ist Lazarus etwas langsamer. Sowohl beim Compilieren als auch in 
der Ausführung. Andererseits darf man nicht vergessen, es kostet nix und 
dafür ist es ein sehr interesantes und umfangreiches Programmiertool. 
Ich merke allerdings sehr schnell meine Grenzen, da ich das 
Programmieren nicht durch ein Studiom gefestigt habe, sondern eher zum 
Freizeitverplempern mache....
Sicherlich, als E-Techniker hat es mir bei vielen Aufgaben geholfen und 
es hält geistig fit. Schließlich bin ich nicht mehr der Jüngste, aber 
irgendwas uß man ja machen, wenn man in Kürze in Rente geht.. :)
Gruß oldmax

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Danke erstmal für die Information. Übrigens findest du in der 
Zeitschrift 'Toolbox' öfters mal etwas zu Lazerus.

MfG Spess

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.