AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ADO SQL UPDATE

Ein Thema von thiagojonas · begonnen am 6. Mai 2009 · letzter Beitrag vom 7. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2      
thiagojonas

Registriert seit: 31. Aug 2008
Ort: Wolfenbüttel
338 Beiträge
 
#1

ADO SQL UPDATE

  Alt 6. Mai 2009, 14:58
Datenbank: Accsses • Zugriff über: ADO
Hallo Leute,
ich habe ein komisches Problem

Also ich Update mit ADOQuery meine Werte in der DB.

Delphi-Quellcode:
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;
Bei main_win.profil_ID bekommen ich eine Fehlermeldung:
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:
Im Projekt Valho_Student.exe ist eine Exception der Klasse EOleException mit der Meldung 'Datentypen in Kriterienausdruck unverträglich' aufgetreten.
Wenn ich main_win.profil_ID durch eine vorhandenen ID Wert in der DB ersetzte dann klappt es.

Delphi-Quellcode:
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;
Vielleicht kann mir einer weiterhelfen. Danke
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

Re: ADO SQL UPDATE

  Alt 6. Mai 2009, 15:34
Versuch es mal mit SQL-Parametern.
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
nahpets
(Gast)

n/a Beiträge
 
#3

Re: ADO SQL UPDATE

  Alt 6. Mai 2009, 15:41
Hallo,

wenn es mitt DeddyH's Vorschlag nicht funktioniert, versuchs bitte mal damit:
Delphi-Quellcode:
  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;
QuotedStr sorgt für die entsprechenden Hochkommata, dann muss Du nicht soviele '' machen.
Von welchem Typ ist main_win.profil_ID, eine Zeichenfolge? Wenn nein, dann bitte mit' WHERE `Profil_ID` = ' + main_win.profil_ID + ';'; versuchen.
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
534 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: ADO SQL UPDATE

  Alt 6. Mai 2009, 15:42
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.
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: ADO SQL UPDATE

  Alt 6. Mai 2009, 15:47
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:
SELECT "42_Feld_das_mit_ner Zahl_beginnt" FROM "Tabelle mit Leerzeichen" Man sollte es grundsätzlich vermeiden, Tabellen- oder Feldnamen so zu benennen, dass man sie in Anführungszeichen setzen muss.
Dies ist immer ein Indiz dafür, dass der Datenbankdesigner nicht richtig nachgedacht hat.

String-Literale werden in einfache Hochkommas gesetzt:
SELECT * FROM Auskunft WHERE TelefonNr='110'
Andreas
  Mit Zitat antworten Zitat
thiagojonas

Registriert seit: 31. Aug 2008
Ort: Wolfenbüttel
338 Beiträge
 
#6

Re: ADO SQL UPDATE

  Alt 6. Mai 2009, 23:20
Hallo, Danke für die Hilfen, leider funktioniert es nicht
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: ADO SQL UPDATE

  Alt 7. Mai 2009, 11:08
Zitat von thiagojonas:
... leider funktioniert es nicht
WAS funktioniert nicht?
Fehlerberichte - wie Sie Softwarefehler melden sollten
Zeige den Sourcecode, den du verwendet hast und nenne die Fehlermeldung.
Andreas
  Mit Zitat antworten Zitat
thiagojonas

Registriert seit: 31. Aug 2008
Ort: Wolfenbüttel
338 Beiträge
 
#8

Re: ADO SQL UPDATE

  Alt 7. Mai 2009, 17:15
Folgende Fehlemeldung:

Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Valho_Student.exe ist eine Exception der Klasse EOleException mit der Meldung 'Datentypen in Kriterienausdruck unverträglich' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
534 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: ADO SQL UPDATE

  Alt 7. Mai 2009, 17:30
Zitat von thiagojonas:
Folgende Fehlemeldung:

Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Valho_Student.exe ist eine Exception der Klasse EOleException mit der Meldung 'Datentypen in Kriterienausdruck unverträglich' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Nochmal:
- Von welchem Datentyp ist Profil_ID?
- Hast Du die Ratschläge umgesetzt?
- Falls ja: Wo kommt die Exception? (Sourcecode)
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
thiagojonas

Registriert seit: 31. Aug 2008
Ort: Wolfenbüttel
338 Beiträge
 
#10

Re: ADO SQL UPDATE

  Alt 7. Mai 2009, 17:39
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 ' WHERE `Profil_ID` = ' + main_win.profil_ID + ';'; Bekomme dann diese Fehlermeldung:

Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Valho_Student.exe ist eine Exception der Klasse EOleException mit der Meldung 'Syntaxfehler (fehlender Operator) in Abfrageausdruck '`Profil_ID` ='' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
  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 20:24 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