Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datensatz einfügen! (https://www.delphipraxis.net/38733-datensatz-einfuegen.html)

Goldesel 23. Jan 2005 15:28


Datensatz einfügen!
 
Hallo,

bin jetzt relativ neu in der Datenbankprogrammierung. Also, ich habe eine Paradox 7 Tabelle und möchte jetzt einen neuen Datensatz einfügen. Allerdings sollen die Werte nicht aus Edits stammen, sondern aus Variablen. Wie kann ich das umsetzen?

MfG
Jannik

schlock 23. Jan 2005 16:20

Re: Datensatz einfügen!
 
High,
um mit Paradox - Datenbanken zu arbeiten benötigst Du ein TQuery Objekt. Falls es ODBC-Treiber für Paradox gibt kannst Du auch mit TADOQuery arbeiten. Die Vorgehensweise ist aber dann dieselbe.
Am besten ein Beispiel:

Delphi-Quellcode:
var
  myQuery : TQuery;
  neuerName: String;

  sqlBefehl: TStrings;
begin
  // Init
  sqlBefehl:= TStringList.Create(NIL);
  neuerName:= 'NeuerName';
  myQuery:= TQuery.Create(NIL);

  // Verbinden
  myQuery.DatabaseName:= 'MeineDatenbank';
  myQuery.OpenDatabase;

  // SQL Befehl erzeugen
  sqlBefehl.Add('INSERT INTO myTable VALUES name = ' + neuerName + ';' );

  // Dem Query-Objekt die Abfrage zuweisen und die Abfrage ausführen
  myQuery.SQL.Assign(sqlCommand);
  myQuery.ExecSQL;
end;
Wichtig ist noch, dass man bei Abfragen die Ergebnismengen erzeugen (z.B. SELECTS) anstatt

Delphi-Quellcode:
myQuery.ExecSQL;
Delphi-Quellcode:
myQuery.Open;
benutzen muss.
Hoffe das Hilft.

[edit=Sharky]Doppelposting gelöscht. (Nach über 40 minuten!) Mfg, Sharky[/edit]

MrSpock 25. Jan 2005 01:23

Re: Datensatz einfügen!
 
Hallo Schlock,

ich wuerde beim Create Aufruf nicht NIL als Owner uebergeben, dann musst du dich naemlich selbst um die Freigabe kuemmern. Besser ist es SELF zu nutzen.

@Goldesel: Alternativ zur Nutzung eines TQuery Objektes kannst du auch mit einem TTable Objekt arbeiten, dass du mit deiner Tabelle verknuepfst. Dann kannst du mit:

Delphi-Quellcode:
myTable.Open;
...
mtTable.Append;
myTable.FieldByName('Feld1').AsInteger := myIntegerVar;
myTable.FieldByName('AnderesFeld').AsString := myStrVar;
...
myTable.Post;
Daten zur Tabelle hinzufuegen.


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