Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL INSERT Problem (https://www.delphipraxis.net/15507-sql-insert-problem.html)

trifid 29. Jan 2004 22:12

Re: SQL INSERT Problem
 
ok,
ich habe dir was mit einem Format gezeigt
das was aber Du machst ist, dass Du alle Daten nochmals in sich selber kopierst
dein SQL bekommt nicht mit dass
nr = 1 und vorname = sven
ist.

der nächste Punkt ist, dass ich nicht weiss welche Datenbank du verwendest
somit können beim Format ('VALUES ("%s", "%s")', [nr, vorname])
die " nicht funktionieren
also musst Du ' verwenden
ich weiss es jetzt nicht auswendig und ich probies auch nicht aus
Format ('VALUES (''%s'', ''%s'')', [nr, vorname])

Piro 29. Jan 2004 22:36

Re: SQL INSERT Problem
 
danke für eure hilfe es lang an dem open.

wo kann ich denn mal etwa über die Values erfahren wenn ich Variablen benutzen möchte.

Sven

trifid 29. Jan 2004 22:39

Re: SQL INSERT Problem
 
Zitat:

wo kann ich denn mal etwa über die Values erfahren wenn ich Variablen benutzen möchte
im Handbuch deiner Datenbank
oder allgemein ein Buch über SQL

Leuselator 29. Jan 2004 22:49

Re: SQL INSERT Problem
 
Also, zu Deinem letzten Versuch: mir scheint, Du benutzt die qr_spielerliste auch zum Anzeigen der Spieler, willst dann kurz einen neuen Spieler einfügen, um anschließend wieder die Spielerliste anzuzeigen - wenn ich richtig vermute, und deine qr_spielerliste vor Eintritt in die bbtn_hinzuClick in etwa so aussieht:
SQL-Code:
SELECT * 
  FROM Spielerdaten
dann kommst Du so zum Ziel:
Delphi-Quellcode:
procedure Tfrm_personeingabe.bbtn_hinzuClick(Sender: TObject);
var nr
  , vorname
  , nachname
  , OldSql  : string;
begin
  nr := edt_nr.Text;
  vorname := edt_vorname.Text;
  nachname := edt_nachname.Text;
  with DataModule1.qr_spielerliste do
  begin
    Close;
    OldSql := SQL.Text;
    SQL.Clear;
    SQL.Add ('INSERT INTO spielerdaten (Nr, Vorname) ');
    SQL.Add ('         ( Nr                        ');  
    SQL.Add ('         , Vorname)                  ');
    SQL.Add ('    VALUES                           ');
    SQL.Add ('         ('+QuotedStr(Nr)             );  
    SQL.Add ('         ,'+QuotedStr(Vorname)+')    ');
    ExecSQL; // führt die Insertanweisung aus (Datenmenge bleibt geschlossen, da
             // kein ergebnis zurückgeliefert wird

    SQL.Text := OldSql; // zuweisen der ursprünglichen Select-Anweisung
    Open;   // öffnen der Liste
  end;
  frm_personeingabe.hide;
end;
Gruß

Robert_G 29. Jan 2004 22:50

Re: SQL INSERT Problem
 
Das wurde hier schon oft besprochen Hier im Forum suchenParamByName
zum Bsp. hier
und da gab es sogar eine Menge Fachchinesisch zu den Vorteilen bei der Verwendung von SQL-Variablen

Nachtrag: :wall: hab' ich wohl falsch verstanden...

trifid 29. Jan 2004 22:52

Re: SQL INSERT Problem
 
@Leuselator
das mit dem OldSQL würde ich abraten - das funktioniert
aber irgendwann kommt man damit durcheinander
besser 2 Query's verwenden

Leuselator 29. Jan 2004 22:59

Re: SQL INSERT Problem
 
@trifid: ich bin einverstanden, aber daywalker299 hatte es scheinbar so angehen wollen, und da ich ein netter Mensch bin... :-)

@daywalker299: verwendest Du die TQuery oder was anderes (TADOQuery z.b.) ?

Piro 29. Jan 2004 23:05

Re: SQL INSERT Problem
 
Dankeschön. damit kann ich doch was anfangen. Und mein rahes Wissen erweitern.

Piro 29. Jan 2004 23:08

Re: SQL INSERT Problem
 
TQuery und Paradox 7

wollte mich auch mal mit DBs beschäftigen. ISt nur etwas schwer wenn man nicht soviel Ahnung hat.

Leuselator 29. Jan 2004 23:18

Re: SQL INSERT Problem
 
ok TQuery:
Delphi-Quellcode:
procedure Tfrm_personeingabe.bbtn_hinzuClick(Sender: TObject);
begin
  with TQuery.Create(nil) do try
    Databasename := DataModule1.qr_spielerliste.Databasename; // Connection übernehmen
    SQL.Add ('INSERT INTO spielerdaten');
    SQL.Add ('         ( Nr         ');  
    SQL.Add ('         , Vorname)   ');
    SQL.Add ('    VALUES            ');
    SQL.Add ('         ( :DieNummer '); // Parameter
    SQL.Add ('         , :DerVorName)'); // noch einer
    Prepare;
    ParamByName('DieNummer' ).AsString := edt_nr    .Text; // Parameter Wert zuweisen
    ParamByName('DerVorName').AsString := edt_vorname.Text;
    ExecSQL; // Pepper!
  finally
    Free; // TQuery freigeben
  end;
  frm_personeingabe.hide;
end;
Rest in den o.g. Links nachlesen...
Gruß


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:32 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz