![]() |
Probleme mit INSERT INTO
Hi.
Ich benutze eine Paradox7 Datenbank und möchte auf sie mit der Query-Komponente per SQL zugreifen. Die Datenbank wird in der DBGrid-Komponente angezeigt und sie lässt sich auch mit Befehlen wie "SELECT * FROM datenbank.db" steuern. Ich schaffe es aber einfach nicht einen neuen Datensatz zu erstellen. Die Befehle übermittel ich so an die Query-Komponente:
Delphi-Quellcode:
Weiß jemand wie's geht? :lol:
procedure TServer.btSQLAbfrageClick(Sender: TObject);
begin Query1.Active:=false; Query1.Sql.Clear; Query1.Sql.Add(edSQLAbfrage.text); Query1.Active:=true; end; Gruß Christian |
Re: Probleme mit INSERT INTO
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Christian.
Ich habe gerade mal eine kleine Anwendung mit Delphi 6 gebaut. Versuche doch mal folgendes;
Code:
Damit kannst du Befehle an die Query-Komponente senden ohne vorher die SQL-Befehle zu leeren und dann mit ExecSQL ausführen. Da der INSERT Befehl ja keine Daten zurückgibt.
Query1.Sql.Text := edSQLAbfrage.text;
Query1.ExecSQL; Ich hänge dir das Testprogramm mal mit an diesen Beitrag an. |
Re: Probleme mit INSERT INTO
Hallo Berserker.
Erstmal Danke für das Programm. Ich habe aber jetzt ein neues Problem :lol: . Die SELECT Befehle werden in der DBGrid nicht mehr angezeigt. Was muss ich denn machen um die Database vollständig ohne tTable über tQuery zu steuern? Gruß Christian |
Re: Probleme mit INSERT INTO
Hallo Christian,
wenn ich es richtig verstehe, dann möchtest Du in einem DBGrid neue Datensätze anfügen. Es gibt dafür folgende Möglichkeit (allerdings sollte diese nicht verwendet werden, da sie dem SQL-Konzepten eigentlich widerspricht): Eine Query mit einem SELECT-Statement versehen und diese dann als lebende Datenmenge kennzeichnen (RequestedLive). Delphi und die BDE sorgen dann dafür, dass die neuen Datensätze in die Tabelle eingetragen werden. Besser wäre es jedoch, Du stellst eine Eingabemaske zur Verfügung (keine datensensitiven Controls) und baust dann ein INSERT-Statement zusammen, das Du dann mit ExecSQL ausführen läßt. |
Re: Probleme mit INSERT INTO
Zitat:
einwenigverwirrtseintun |
Re: Probleme mit INSERT INTO
hallo. Also ich bin momentan am ähnlichen dran. Ist es möglich eine SQLAbfrage wie DataSource zu behandeln? also dass ich danne eine DBTable erstelle und diese dann die SELECT * FROM TABLE WHERE STATUS != (oder <>?)OFFEN ausleist und in einer tabelle abbildet?
aber ich schaue mir mal erstmal das hier begefügte programm an. vielleicht sehe ich da was interessantes :-) |
Re: Probleme mit INSERT INTO
Hallo
Ich habe das Problem mitlerweile gelöst. Bevor die SQL-Anfrage ausgefürht wird, wird geprüft, ob Daten editiert werden, oder ob Daten per Select gesucht werden. Anschließend benutze ich entweder ExecSQL oder Query1.Sql.Add(edSQLAbfrage.text) das sieht dann so aus:
Delphi-Quellcode:
Gruß
procedure TServer.btSQLAbfrageClick(Sender: TObject);
begin if copy (edSQLAbfrage.text, 1, 6) = 'SELECT' then begin Query1.Active:=false; Query1.Sql.Clear; try Query1.Sql.Add(edSQLAbfrage.text); except ShowMessage('SQL Fehler! Bitte SQL-Syntax prüfen') end; Query1.Active:=true; end else begin Query1.SQL.Text := edSQLAbfrage.Text; try Query1.ExecSQL; except ShowMessage('SQL Fehler! Bitte SQL-Syntax prüfen') end; Query1.Active:=false; Query1.Sql.Clear; Query1.Sql.Add('SELECT * FROM datenbank.db'); Query1.Active:=true; end end; Christian |
Re: Probleme mit INSERT INTO
Delphi-Quellcode:
Warum sollte es beim add eine Exception geben?
try
Query1.Sql.Add(edSQLAbfrage.text); except ShowMessage('SQL Fehler! Bitte SQL-Syntax prüfen') end; Query1.Active:=true; end |
Re: Probleme mit INSERT INTO
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 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