![]() |
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 |
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?
|
Re: Neuen Eintrag in Datenbank einfügen per Query
Ja, gutes tut übrigens, aber ich will es mit dem insert vom query machen.
|
Re: Neuen Eintrag in Datenbank einfügen per Query
OK habe ich mich nicht so. :zwinker:
simples insert:
SQL-Code:
insert nur für best. Spalten:
INSERT INTO Sheme.Table VALUES (1, 'Hallo', 2)
SQL-Code:
mit Variablen:
INSERT INTO Sheme.Table (Field2, Field3)
VALUES ('Hallo', 2)
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; |
Re: Neuen Eintrag in Datenbank einfügen per Query
geht das nicht irgendwie mit query1.insert?
|
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!
|
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.
|
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. |
Re: Neuen Eintrag in Datenbank einfügen per Query
Zitat:
|
Re: Neuen Eintrag in Datenbank einfügen per Query
Du meinst, ich soll auf eine andere DB umsteigen? :shock:
|
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!
|
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. |
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. |
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:
Leider! Gibt es nicht doch eine Möglichkeit, insert zu benutzen?
query1.active := false;
query1.RequestLive := true; query1.Insert; |
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). |
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? |
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