AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Probleme mit INSERT INTO
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit INSERT INTO

Ein Thema von Chris1986 · begonnen am 11. Sep 2003 · letzter Beitrag vom 11. Sep 2003
Antwort Antwort
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#1

Probleme mit INSERT INTO

  Alt 11. Sep 2003, 02:15
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:
procedure TServer.btSQLAbfrageClick(Sender: TObject);
begin
  Query1.Active:=false;
  Query1.Sql.Clear;
  Query1.Sql.Add(edSQLAbfrage.text);
  Query1.Active:=true;
end;
Weiß jemand wie's geht?

Gruß
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Berserker
Berserker

Registriert seit: 15. Dez 2002
Ort: Chemnitz
164 Beiträge
 
Delphi 6 Professional
 
#2

Re: Probleme mit INSERT INTO

  Alt 11. Sep 2003, 05:50
Hallo Christian.

Ich habe gerade mal eine kleine Anwendung mit Delphi 6 gebaut.


Versuche doch mal folgendes;

Code:
  Query1.Sql.Text := edSQLAbfrage.text;
  Query1.ExecSQL;
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.

Ich hänge dir das Testprogramm mal mit an diesen Beitrag an.
Angehängte Dateien
Dateityp: zip kleinesadressprogramm.zip (421,0 KB, 16x aufgerufen)
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Probleme mit INSERT INTO

  Alt 11. Sep 2003, 11:06
Hallo Berserker.
Erstmal Danke für das Programm. Ich habe aber jetzt ein neues Problem .
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
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#4

Re: Probleme mit INSERT INTO

  Alt 11. Sep 2003, 12:11
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.
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Probleme mit INSERT INTO

  Alt 11. Sep 2003, 14:35
Zitat von r_kerber:
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.
Wie jetzt. Select trägt was in die Table ein?
einwenigverwirrtseintun
  Mit Zitat antworten Zitat
mojo777

Registriert seit: 10. Sep 2003
402 Beiträge
 
#6

Re: Probleme mit INSERT INTO

  Alt 11. Sep 2003, 14:36
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
Muh macht die kUh
  Mit Zitat antworten Zitat
Chris1986

Registriert seit: 17. Jul 2003
Ort: Aachen
350 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Probleme mit INSERT INTO

  Alt 11. Sep 2003, 16:06
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:
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;
Gruß
Christian
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Probleme mit INSERT INTO

  Alt 11. Sep 2003, 16:42
Delphi-Quellcode:
  try
  Query1.Sql.Add(edSQLAbfrage.text);
  except
   ShowMessage('SQL Fehler! Bitte SQL-Syntax prüfen')
  end;
  Query1.Active:=true;
  end
Warum sollte es beim add eine Exception geben?
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#9

Re: Probleme mit INSERT INTO

  Alt 11. Sep 2003, 18:17
Zitat von Memo:
Select trägt was in die Table ein?
Jo. Wenn Du die TQuery als "lebende Datenmenge" einstellst, dann arbeitet diese so wie eine TTable. Es gibt dann z.B. die Methoden Add oder auch Edit. Auch Änderungen im Tabellengitter werden dann zurückgeschrieben. Ist aber eben nicht die feine englische Art.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:04 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