AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Userdaten in Tabelle einfügen!?
Thema durchsuchen
Ansicht
Themen-Optionen

Userdaten in Tabelle einfügen!?

Ein Thema von eXpli · begonnen am 3. Feb 2008 · letzter Beitrag vom 12. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
eXpli

Registriert seit: 14. Nov 2007
38 Beiträge
 
#1

Userdaten in Tabelle einfügen!?

  Alt 3. Feb 2008, 17:47
Datenbank: *.mdb • Zugriff über: ADO
Hallo zusammen!

Folgendes Problem:

Ich versuche eine Punktzahl und den User welcher diese erreicht hat in meine DB (tabelle) zu schreiben.
Die Punktzahl (ist nen Int) setze ich schon in der form "TestAufgaben". Der User wird dann auf der nächsten form ("TestName") festgelegt und dann via Query an die DB (Tabelle) gesendet.

Hier mein Versuch:

Delphi-Quellcode:
procedure TTestName.Button1Click(Sender: TObject);
begin
  QRY_Insert_User.SQL.Text := 'INSERT INTO Highscore (Punktzahl, User) VALUES (:Punktzahl, :User);';
  QRY_Insert_User.Parameters.ParamByName('Punktzahl').Value := TestAufgaben.punkte;
  QRY_Insert_User.Parameters.ParamByName('User').Value := Edit1.Text;
  QRY_Insert_User.ExecSQL;
end;
Leider bringt das immer einen Fehler! (siehe Anlage)
Miniaturansicht angehängter Grafiken
fehler_486.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#2

Re: Userdaten in Tabelle einfügen!?

  Alt 3. Feb 2008, 17:58
Mit ADO kenn ich mich nicht aus, aber versuch mal eine dieser beiden Möglichkeiten:QRY_Insert_User.Parameters.ParamByName('User').Value := QuotedStr(Edit1.Text); oderQRY_Insert_User.Parameters.ParamByName('User').AsString := Edit1.Text;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
eXpli

Registriert seit: 14. Nov 2007
38 Beiträge
 
#3

Re: Userdaten in Tabelle einfügen!?

  Alt 9. Feb 2008, 10:25
Grad beide Versionen versucht, aber keine hat funktionieren wollen

Verwirren tut mich, dass ich an anderer Stelle in meinem Prog die SQL-Abfrage auf die gleiche Weise gemacht hab und sie da fehlerlos ausgeführt wird. Allerdings ging es dort nur um strings.

Muss man bei der Parameterübergabe bei integer evtl. was besondres beachten?

Gruß!
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Userdaten in Tabelle einfügen!?

  Alt 9. Feb 2008, 15:08
Hier nochmal ein neuer Vorschlag...

Delphi-Quellcode:
QRY_Insert_User.SQL.Text:=
  Format(
    'INSERT INTO Highscore (Punktzahl, User) ' +
    'VALUES (%d, %s)',
    [TestAufgaben.punkte, QuotedStr(Edit1.Text)]
  );
QRY_Insert_User.ExecSQL;
Gruss
Thorsten
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

Re: Userdaten in Tabelle einfügen!?

  Alt 9. Feb 2008, 16:37
Wenn uns der TE mal mitteilt, welche Typen die beiden Datenfelder haben, könnten wir vermutlich eher weiterhelfen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
eXpli

Registriert seit: 14. Nov 2007
38 Beiträge
 
#6

Re: Userdaten in Tabelle einfügen!?

  Alt 9. Feb 2008, 21:17
Naja wenn ich wüßte was nen TE ist... Anyway!

Zitat:
Punktzahl (ist nen Int)
(Für die sichs nicht denken können: User ist nen ganz normaler Text)

Hilft das jetzt?!?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

Re: Userdaten in Tabelle einfügen!?

  Alt 9. Feb 2008, 21:23
Also, TE heißt Thread-Ersteller (also Du). Und dann versuch es mal so:
Delphi-Quellcode:
procedure TTestName.Button1Click(Sender: TObject);
begin
  QRY_Insert_User.SQL.Text := 'INSERT INTO Highscore (Punktzahl, User) VALUES (:Punktzahl, :User);';
  QRY_Insert_User.Parameters.ParamByName('Punktzahl').AsInteger := TestAufgaben.punkte;
  QRY_Insert_User.Parameters.ParamByName('User').AsString := Edit1.Text;
  QRY_Insert_User.ExecSQL;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Userdaten in Tabelle einfügen!?

  Alt 9. Feb 2008, 22:30
Hallo,

das einzig störende, was ich momentan im SQL des ersten Beitrags erkenne, ist das eklige Semikolon am Ende. AsString() und AsInteger() sind bei beim ADO TParameter nicht verfügbar - und wer Query-Parameter benutzt, der muss sich um Quotes nicht mehr kümmern.

Gute Nacht
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#9

Re: Userdaten in Tabelle einfügen!?

  Alt 9. Feb 2008, 22:31
Wie ich schon sagte: ADO ist nicht meine Welt
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Userdaten in Tabelle einfügen!?

  Alt 10. Feb 2008, 09:26
Das Parameter muss wissen, um was für einen Datentyp es sich handelt, damit es die implizite Konvertierung in SQL-Syntax vornehmen kann.
Delphi-Quellcode:
procedure TTestName.Button1Click(Sender: TObject);
begin
  QRY_Insert_User.SQL.Text := 'INSERT INTO Highscore (Punktzahl, User) VALUES (:Punktzahl, :User);';
  QRY_Insert_User.Parameters.ParamByName('Punktzahl').DataType := ftInteger;
  QRY_Insert_User.Parameters.ParamByName('User').DataType := ftString;
// bis hierhin kann man das auch einmalig im Vorfeld zuweisen.

// das eigentliche 'Benutzer einfügen' besteht dann aus diesen drei Zeilen.
  QRY_Insert_User.Parameters.ParamValues['Punktzahl'] := TestAufgaben.punkte;
  QRY_Insert_User.Parameters.ParamValues['User'] := Edit1.Text;
  QRY_Insert_User.ExecSQL;
end;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:57 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