AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken UPDATE Tabelle SET funktioniert nicht -.-
Thema durchsuchen
Ansicht
Themen-Optionen

UPDATE Tabelle SET funktioniert nicht -.-

Ein Thema von t0mmy · begonnen am 19. Dez 2011 · letzter Beitrag vom 19. Dez 2011
Antwort Antwort
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#1

UPDATE Tabelle SET funktioniert nicht -.-

  Alt 19. Dez 2011, 08:43
Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO
Hallo!

Ich habe folgenden Code:

Delphi-Quellcode:
  DataModule1.ADOQuery_Update_OwnDB.SQL.Clear;
  DataModule1.ADOQuery_Update_OwnDB.SQL.Text :=
    'UPDATE Tabelle '+
    'SET WahrFalsch = ''True'' '+
    'WHERE (Barcode = '''+Main.Edit_Station.Text+''') '+
    'AND (Station = '''+Stationsnummer+''')';
  DataModule1.ADOQuery_Update_OwnDB.ExecSQL;
Obwohl ich es in SQL ausprobiert habe. Dort funktioniert e -.-
In Delphi bekomm ich einen Fehler:

[Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben. (
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: UPDATE Tabelle SET funktioniert nicht -.-

  Alt 19. Dez 2011, 08:45
Hallo!

Ich habe folgenden Code:

Delphi-Quellcode:
  DataModule1.ADOQuery_Update_OwnDB.SQL.Clear;
  DataModule1.ADOQuery_Update_OwnDB.SQL.Text :=
    'UPDATE Tabelle '+
    'SET WahrFalsch = ''True'' '+
    'WHERE (Barcode = '''+Main.Edit_Station.Text+''') '+
    'AND (Station = '''+Stationsnummer+''')';
  DataModule1.ADOQuery_Update_OwnDB.ExecSQL;
Obwohl ich es in SQL ausprobiert habe. Dort funktioniert e -.-
In Delphi bekomm ich einen Fehler:

[Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben. (
Stelle deine ADOConnection auf einen nativen MS-SQL-Treiber um und geh nicht den problematischen weg zusätzlich über ODBC wenn du ADO verwendest.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: UPDATE Tabelle SET funktioniert nicht -.-

  Alt 19. Dez 2011, 08:47
Und ein parametrisiertes Statement ist wohl auch nicht die schlechteste Idee, allein schon aus Gründen der Lesbarkeit.
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
t0mmy

Registriert seit: 28. Jul 2010
431 Beiträge
 
Delphi 2010 Architect
 
#4

AW: UPDATE Tabelle SET funktioniert nicht -.-

  Alt 19. Dez 2011, 08:54
Hmm Ich habs jetzt mit anderen Providern bei der ADOConnection probiert jedoch funktioniern die auch nicht -.- Weil eine Insert abfrage funktioniert einwandfrei damit -.-
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#5

AW: UPDATE Tabelle SET funktioniert nicht -.-

  Alt 19. Dez 2011, 09:14
MSSQL kennt die Konstanten True und False nicht sondern nur 1 und 0.
Daher müssen Abfragen etwas umgeschrieben werden:
SQL-Code:
-- vorher
SELECT * FROM Tabelle WHERE status=True

-- nachher
-- man beachte dass man nicht status=1 schreiben sollte
SELECT * FROM Tabelle WHERE status<>0
Bzw wenn ein Feld auf False abgefragt wird:
SQL-Code:
-- vorher
SELECT * FROM Tabelle WHERE status=False

-- nachher
SELECT * FROM Tabelle WHERE status=0
Bei UPDATEs und INSERTs muss man statt True und False natürlich 1 und 0 verwenden.

PS: möglich, dass im Enterprise Manager bzw. SQL Management Studio die Konstanten True und False bekannt sind
(kann das gerade nicht testen)
aber über die ADO-Treiberschicht muss man 1 und 0 verwenden.

Geändert von sx2008 (19. Dez 2011 um 09:19 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: UPDATE Tabelle SET funktioniert nicht -.-

  Alt 19. Dez 2011, 09:26
Das Statement sieht aber eher so aus, als handle es sich um ein Stringfeld, da kann man natürlich "True" reinschreiben
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
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#7

AW: UPDATE Tabelle SET funktioniert nicht -.-

  Alt 19. Dez 2011, 09:29
Es ist zwar unüblich aber MSSQL verdaut SET BooleanFeld='True' durchaus
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: UPDATE Tabelle SET funktioniert nicht -.-

  Alt 19. Dez 2011, 18:02
Ich plädiere dafür, die Fehlermeldung ernst zu nehmen "Datenquellenname....".
Da solltest Du zuerst einmal überprüfen ob derselbige wirklich korrekt ist.

Gruß
K-H

P.S.
Mit ADO auf ODBC aufzusetzen mag zwar umständlich sein aber ich habe bisher noch nie Probleme damit gehabt.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


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 16:11 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