Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Neuen Eintrag in Datenbank einfügen per Query (https://www.delphipraxis.net/14514-neuen-eintrag-datenbank-einfuegen-per-query.html)

Spurius 10. Jan 2004 19:37


Neuen Eintrag in Datenbank einfügen per Query
 
Hallo,
wie kann ich einen Neuen Datensatz in eine Datenbank(Paradox 7) per Query einfügen?
Wenn ich einfach nur query1.insert schreibe, bekomme ich eine Fehlermeldung.
Was muss ich davor noch schreiben?
Sowas wie open etc. ..
Gruß
Spurius

Robert_G 10. Jan 2004 19:46

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Scon in dem SQL Tut gestöbert, dass ich dir in dem anderen Thread gepostet habe?

Spurius 10. Jan 2004 19:47

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Ja, gutes tut übrigens, aber ich will es mit dem insert vom query machen.

Robert_G 10. Jan 2004 19:54

Re: Neuen Eintrag in Datenbank einfügen per Query
 
OK habe ich mich nicht so. :zwinker:

simples insert:
SQL-Code:
INSERT INTO Sheme.Table VALUES (1, 'Hallo', 2)
insert nur für best. Spalten:
SQL-Code:
INSERT INTO Sheme.Table (Field2, Field3)
VALUES ('Hallo', 2)
mit Variablen:
SQL-Code:
INSERT INTO Sheme.Table (Field2, Field3)
VALUES (:F2, :F3)
Delphi-Quellcode:
  Query1.Sq.Text := 'halt dein SQL Code';
  Query1.prepare;
// nur nötig bei SQL Variablen
  Query1.ParamByName('F2').AsString := 'Hallo';
  Query1.ParamByName('F3').AsInteger := 2;

  Query1.ExecSQL;

Spurius 10. Jan 2004 20:29

Re: Neuen Eintrag in Datenbank einfügen per Query
 
geht das nicht irgendwie mit query1.insert?

r_kerber 10. Jan 2004 20:36

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Geht schon. Ich hatte aber in dem anderen Thread schon geschrieben, warum ich das nicht empfehle!

Spurius 10. Jan 2004 20:39

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Ich will halt dbedits verwenden, um die Daten aus der DB leichter anzeigen zu können.

Robert_G 10. Jan 2004 20:40

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Suche mal in der OH nach "InsertRecord" und schau dir das Beispiel an.

Über SQL hast du aber mehr Kontrolle darüber und es ist auch nicht wirklich schwierig.

r_kerber 10. Jan 2004 21:36

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Zitat:

Zitat von Spurius
Ich will halt dbedits verwenden, um die Daten aus der DB leichter anzeigen zu können.

Ich kann mich hier nur wiederholen. Das funktioniert IMHO mit Query nur der BDE, die es irgendwann nicht mehr gibt. ALso gewöhne Dir das doch gar nicht erst an.

Spurius 10. Jan 2004 22:05

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Du meinst, ich soll auf eine andere DB umsteigen? :shock:

r_kerber 10. Jan 2004 22:41

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Nö, ich empfehle Dir, Dich mit SQL-Statements zu beschäftigen. Das Problem hängt nicht mit irgendwelchen DB's zusammen sondern mit der Zugriffsschicht. Und die BDE wird eben nicht mehr weiterentwickelt. Und bei ADO bzw. dbExepress geht das mit den Queries nicht mehr. Du kannst zwar Tables verwenden, aber empfehlen würde ich Dir das nicht. Nimm Dir ruhig die Zeit, falls Du sie hast!

Spurius 11. Jan 2004 12:38

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Also wie soll ich dann jetzt vorgehen? Die Dbedits runter von meinem Form und durch normale ersetzen?
Und wie soll ich die BDE umgehen? Ich brauch doch das Query, um die SQL-Statements umzusetzten.

r_kerber 11. Jan 2004 13:42

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Hallo Spurius.

Zu den Edits: genau das wäre mein Vorschlag. Und dann aus den den Inhalten der TEdits ein SQL-Statement zusammenbauen.
Zur BDE: Ich habe nicht gesagt, dass Du jetzt gleich die BDE wegschmeißen sollst. Natürlich kannst Du alternativ ADO oder dbExpress nutzen, dann allerdings nicht mehr mit dBase oder Paradox.
Ich habe Dir davon abgeraten TQuery.Insert zu verwenden. Dafür benötigts Du eine sogenannte aktualisierbare Datennmenge. Bei der BDE-Query gibt es dafür die Eigenschaft RequestLive. Wenn Du diese auf true setzt, kannst Du mit TQuery.Insert arbeiten. Bei TADOQuery bzw. TSQLQuery (dbExpress) gibt es zwar die Methode Insert (da von TDataSet geerbt) aber nicht die Eigenschaft RequestLive. Somit dürfte IMHO das Query.Insert nicht funktionieren. Ob es bei den Table-Komponenten funktioniert, weiß ich nicht. Aber dann kannst Du keine SQL-Statements einsetzen.

Spurius 11. Jan 2004 13:58

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Hallo,
also ich will mir den DBedits und einem DBgrid den aktuellen Datensatz anzeigen und mit den DBedits verändern.
Aber es geht auch nicht mit requestedlive:
Delphi-Quellcode:
 query1.active := false;
 query1.RequestLive := true;
 query1.Insert;
Leider! Gibt es nicht doch eine Möglichkeit, insert zu benutzen?

Sharky 11. Jan 2004 14:04

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Hai Spurius,

was möchtes Du denn nun?

Ändern (Query1.Edit) oder neu anlegen (Query1.Insert).

r_kerber 11. Jan 2004 15:30

Re: Neuen Eintrag in Datenbank einfügen per Query
 
query1.insert geht nur wenn query1.active auf true gesetzt wurde. Und RequestLive würde ich schon zur Design-Zeit setzen. Aber auch wenn ich mich wiederhole, Du befindest Dich so in einer Sackgasse. Wenn Du keinen Zeitdruck hast, dann fang damit doch gar nicht erst an.
BTW: Die Frage von Sharky ist berechtigt. Willst Du vorhandene Daten ändern oder neue Datensätze hinzufügen?

Spurius 11. Jan 2004 15:43

Re: Neuen Eintrag in Datenbank einfügen per Query
 
Ich möchte einen neuen Datensatz erstellen.


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