pawlos
Goto Top

Wie bekomme ich ein SQL-Befehl mit den Werten heraus die ich in die DB überführe?

Hallo Zussamen,

habe eine Frage, und zwar ich überführe Daten mit Hilfe von PreparedStatement und SQL-Befehlen in eine Datenbank. Möchte aber bevor oder nachdem der INSERT-Befehl durchgeführt wurde sehen welche Daten ich wirklich einfüge bzw. überführe.

Das PreparedStatement sieht wie folgt aus:

INSERT INTO Tabelle1(Spaltenname1,Spaltenname1,Spaltenname1) VALUES (?,?,?);
usw.
usw.

ich möchte nun sehen was ich anstatt der Fragezeichen (?) wirklich in die Datenbank einfüge.
Habe auch schon die Methode .toString(); ausprobiert funktioniert aber nicht.

Hat eventuell Jemand schon mal das Problem gehabt?

Viele Grüße
Pawlos

Content-Key: 91721

Url: https://administrator.de/contentid/91721

Printed on: April 20, 2024 at 01:04 o'clock

Member: StayTuned
StayTuned Jul 10, 2008 at 07:39:23 (UTC)
Goto Top
ähm ich weiss jetzt nicht ob ich dich richtig verstehe aber die antwort scheint mir genau vor deine nase zu liegen.

Statt der Fragezeichen kommt das "Value" in die klammer.

Value 1 = Spalte 1, Value 2 = Spalte 2.

"Sehen" kannst du das während der Verarbeitung natürlich nicht.
Aber du könntest eine Temporäre Tabelle aufbauen und die gerade geschriebenen Werte auch dahin ausgeben.

War das die Frage?
Member: Biber
Biber Jul 10, 2008 at 07:51:46 (UTC)
Goto Top
...und bitte, Pawlos,
wenn Du eh grad am Erläutern bist, dann schreib bitte wenigstens
  • welches Datenbankblech
  • welche Umgebung ("methode .toString()" lässt mich zwar was ahnen, aber...)
  • WTF bedeutet "ich möchte nun sehen..."??? Im Debugger? Am Bildschirm? Im Log?

Grüße
Biber,
der es hasst, so etwas posten zu müssen
Member: Pawlos
Pawlos Jul 10, 2008 at 08:12:51 (UTC)
Goto Top
Hallo,

folgendes, ich versuche Daten aus einer MySQL-Datenbank in eine Access-Datenbank zu überführen. Die Verbindungen werden aufgebaut und das Programm liest mir aus der MySQL-Datenbank alle benötigten Daten heraus. Welche Tabellen mir das Programm heraus lesen muss bestimme ich mit einem Propertie-File. Im diesem File bestimme ich auch den Tabellennamen PK, FK und noch einpaar Spalten die ich für den Vergleich benötiige ob es diesen Datensatz in der Access-Datenbank schon gibt. Jedoch geschieht wie es aussieht ein Fehler bei der Überführung der Daten. Das komische dabei ist wenn ich die Tabellen einzeln überführe, das heißt mein Propertie-File beinhaltet nur eine Tabelle. kommt kein Fehler zu stande nur wenn ich alle Tabellen die ich überführen möchte kommt der Fehler zustande. Ich möchte nun entweder in ein Log-File oder am Anfang auf der Konsole sehen welche Daten mit Hilfe des PreparedStatement und des INSERT-Befehls überführt werden.

Wenn ich das SQL-Statement mit SQL-Statement.toString(); aufrufe bekomme ich zwar das komplette SQL-Statement zusehen mit den Spaltennamen und der Anzahl von Fragezeichen, aber ich möchte nicht die Fragezeichen sondern die Werte zu den dazugehörigen Spalten sehen.
Member: StayTuned
StayTuned Jul 10, 2008 at 08:29:09 (UTC)
Goto Top
Kann es sein dass es sich um ein Konvertierungsproblem handelt?

also dass du einen string in deine int spalte schreiben willst oder sowas?! das könnte die "?" zur Folge haben.
Member: Pawlos
Pawlos Jul 10, 2008 at 08:36:13 (UTC)
Goto Top
Nein, das kann ich ausschließen den ich nutze das Object selbst, und zum anderen wäre es der Fall müßte ich bei allen Daten den Fehler haben, bekomme aber die Fehlermeldung nicht bei allen Datensätzen. Und zum anderem ich schreibe die Datensätze die ich nicht überführen kann in eine .csv-Datei. Da würde ich sofort sehen wenn ich wirklich versuchen würde Daten in falsche Spalten einzufügen.

Das SQL-Statement ist ja vom Typ String. und wenn ich mir das SQL-Statement vor dem executeUpdate() ausgeben lasse (auf der Konsole) bekomme die Spaltenname zusehen aber die Werte sind immer noch durch Fragezeichen gekennzeichnet. Und ich würde gerne sehen welche Werte dieser String wirklich beinhaltet.