![]() |
Datenbank: Accsses • Zugriff über: ADO
ADO SQL UPDATE
Hallo Leute,
ich habe ein komisches Problem :-D Also ich Update mit ADOQuery meine Werte in der DB.
Delphi-Quellcode:
Bei main_win.profil_ID bekommen ich eine Fehlermeldung:
ADOQuery1.SQL.Text := 'UPDATE `Profil` SET `Anrede` = '''+geschlecht+''','+
'`Vorname`='''+vorname.Text+''','+ '`Nachname`='''+nachname.Text+''','+ '`Alter`='''+birthday+''','+ '`Strasse`='''+strasse.Text+''' WHERE `Profil_ID` = '''+main_win.profil_ID+''';'; ADOQuery1.ExecSQL; profil_ID habe ich unter publich als string deklariert und mit ShowMessage wird es angezeigt, also kann es nicht daran liegen, dass der Wert nicht geladen wird. Zitat:
Delphi-Quellcode:
Vielleicht kann mir einer weiterhelfen. Danke :-D
ADOQuery1.SQL.Text := 'UPDATE `Profil` SET `Anrede` = '''+geschlecht+''','+
'`Vorname`='''+vorname.Text+''','+ '`Nachname`='''+nachname.Text+''','+ '`Alter`='''+birthday+''','+ '`Strasse`='''+strasse.Text+''' WHERE `Profil_ID` = ''2'';'; ADOQuery1.ExecSQL; |
Re: ADO SQL UPDATE
Versuch es mal mit SQL-Parametern.
|
Re: ADO SQL UPDATE
Hallo,
wenn es mitt DeddyH's Vorschlag nicht funktioniert, versuchs bitte mal damit:
Delphi-Quellcode:
QuotedStr sorgt für die entsprechenden Hochkommata, dann muss Du nicht soviele '' machen.
ADOQuery1.SQL.Text := 'UPDATE `Profil` SET `Anrede` = ' + QuotedStr(geschlecht) + ',' +
'`Vorname` = ' + QuotedStr(vorname.Text) + ',' + '`Nachname` = ' + QuotedStr(nachname.Text) + ',' + '`Alter` = ' + QuotedStr(birthday) + ',' + '`Strasse` = ' + QuodetStr(strasse.Text) + ' WHERE `Profil_ID` = ' + QuotedStr(main_win.profil_ID) + ';'; ADOQuery1.ExecSQL; Von welchem Typ ist main_win.profil_ID, eine Zeichenfolge? Wenn nein, dann bitte mit
Delphi-Quellcode:
versuchen.
' WHERE `Profil_ID` = ' + main_win.profil_ID + ';';
|
Re: ADO SQL UPDATE
Was für ein Datentyp hat denn profil_id in der Datenbank?
Die Fehlermeldung sagt dass Du vermutlich einen String in ein INT Datenfeld schreiben willst. Wie schon vom Vor-Poster erwähnt kannst Du Dir sowieso mit Parametern solche '''+''' Übungen sparen. |
Re: ADO SQL UPDATE
Bitte gewöhn' dir gleich auch mal die falsche Verwendung von dem Akzentzeichen ` ab.
Dieses Zeichen hat in einer SQL-Anweisung nichts verloren. Sollte ein Tabellen- oder Feldname gequotet werden müssen, dann sind doppelte Anführungszeichen zu verwenden:
SQL-Code:
Man sollte es grundsätzlich vermeiden, Tabellen- oder Feldnamen so zu benennen, dass man sie in Anführungszeichen setzen muss.
SELECT "42_Feld_das_mit_ner Zahl_beginnt" FROM "Tabelle mit Leerzeichen"
Dies ist immer ein Indiz dafür, dass der Datenbankdesigner nicht richtig nachgedacht hat. String-Literale werden in einfache Hochkommas gesetzt:
SQL-Code:
SELECT * FROM Auskunft WHERE TelefonNr='110'
|
Re: ADO SQL UPDATE
Hallo, Danke für die Hilfen, leider funktioniert es nicht :cry:
|
Re: ADO SQL UPDATE
Zitat:
![]() Zeige den Sourcecode, den du verwendet hast und nenne die Fehlermeldung. |
Re: ADO SQL UPDATE
Folgende Fehlemeldung:
Zitat:
|
Re: ADO SQL UPDATE
Zitat:
- Von welchem Datentyp ist Profil_ID? - Hast Du die Ratschläge umgesetzt? - Falls ja: Wo kommt die Exception? (Sourcecode) |
Re: ADO SQL UPDATE
Also Datentyp ist Integer, primary key und halt autoincrement.
Also 1,2,3,4,etc. Habe es so gemacht wie nahpets es mir vorgeschlagen hat, mit
Delphi-Quellcode:
Bekomme dann diese Fehlermeldung:
' WHERE `Profil_ID` = ' + main_win.profil_ID + ';';
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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