![]() |
Datenbank: *.mdb • Zugriff über: ADO
Userdaten in Tabelle einfügen!?
Liste der Anhänge anzeigen (Anzahl: 1)
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:
Leider bringt das immer einen Fehler! (siehe Anlage)
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; |
Re: Userdaten in Tabelle einfügen!?
Mit ADO kenn ich mich nicht aus, aber versuch mal eine dieser beiden Möglichkeiten:
Delphi-Quellcode:
oder
QRY_Insert_User.Parameters.ParamByName('User').Value := QuotedStr(Edit1.Text);
Delphi-Quellcode:
QRY_Insert_User.Parameters.ParamByName('User').AsString := Edit1.Text;
|
Re: Userdaten in Tabelle einfügen!?
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ß! |
Re: Userdaten in Tabelle einfügen!?
Hier nochmal ein neuer Vorschlag...
Delphi-Quellcode:
Gruss
QRY_Insert_User.SQL.Text:=
Format( 'INSERT INTO Highscore (Punktzahl, User) ' + 'VALUES (%d, %s)', [TestAufgaben.punkte, QuotedStr(Edit1.Text)] ); QRY_Insert_User.ExecSQL; Thorsten |
Re: Userdaten in Tabelle einfügen!?
Wenn uns der TE mal mitteilt, welche Typen die beiden Datenfelder haben, könnten wir vermutlich eher weiterhelfen.
|
Re: Userdaten in Tabelle einfügen!?
Naja wenn ich wüßte was nen TE ist... Anyway!
Zitat:
Hilft das jetzt?!? |
Re: Userdaten in Tabelle einfügen!?
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; |
Re: Userdaten in Tabelle einfügen!?
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 |
Re: Userdaten in Tabelle einfügen!?
Wie ich schon sagte: ADO ist nicht meine Welt ;)
|
Re: Userdaten in Tabelle einfügen!?
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:50 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-2025 by Thomas Breitkreuz