| 

.NET C# Java Javascript Exception

2
Habe die Delphi-Datenbank (BDE) in MySQL exportiert und benutze in Delphi die FireDAC-Komponenten zur Verbindung mit MySQL. Die normalen Funktionen funktionieren. Für einige Reports habe ich Parameter verwendet. Hier gibt es Probleme. Momentan versuche ich, ein SQL-Statement in der MyAdmin-Umgebung zum Laufen zu bekommen. Hierzu muss ich irgendwie auch die Parameter definieren. Meine Syntax sieht so aus:

SELECT * FROM Vertrag V, Haeuser H
WHERE (V.Haus = H.Haus)
AND (H.Haus = @Haus)
AND (Mietende BETWEEN @MpLfdA AND @MpLfdE)
ORDER BY V.MietBeginn

cmd.Parameters.AddWithValue("@Haus", "xyz");

Die letzte Zeile wird nicht akzeptiert bei der Ausführung. Was muss ich da ändern?
Merci im Voraus.
09.10.2014
Cuci 1 1
Ich hatte mal ähnliche Probleme. Geändert hatte ich es auf
cmd.Parameters.Add("@Haus",MySqlDbType.VarChar).Value = "xyz"
Ist aber keine Garantie, dass das bei Dir auch funzt. Wenn nicht, definiere mal bitte genauer, was er nicht akzeptiert.
muffi 10.10.2014
2 Antworten
0
... das ist die Reaktion von MySQL:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'cmd.Parameters.Add("@Haus",MySqlDbType.VarChar).Value = "xyz"

In meinem DELPHI-Programm werden alle SQL-Statements akzeptiert, auch die Parameter-Festlegungen. Bei der Ausführung überspringt das Programm dann die Sequenz, wo dieser VIEW eingesetzt ist,
... while not FData.V_MPI_Lfd.EOF do ...
vermutlich deshalb, weil dier VIEW in der Datenbank fehlerhaft ist und keine Datensätze vorhanden sind.

Cuci
11.10.2014
Cuci 1 1
Da liegt offenbar ein Syntax-Fehler in Deinem Quellcode vor. Ich vermute stark, Du hast ein schließendese Gänsefüßchen vergessen. Der Parameter-Befehl scheint im SQL-Command noch zu stecken - damit kann MySQL natürlich nichts anfangen.
muffi 13.10.2014
0
Bei Dir scheint der Parameter noch im SQL-Command zu stehen. Vielleicht fehlt nur ein schließendes Gänsefüßchen? Mit Delphi bin ich nicht so firm, aber solche Geschichten schauen eigentlich in allen .Net-Sprachen ähnlich aus (hier Visual Basic.Net):

cmd.CommandText = "SELECT * FROM Vertrag V, Haeuser H " & _
"WHERE (V.Haus = H.Haus) AND (H.Haus = @Haus) " & _
"AND (Mietende BETWEEN @MpLfdA AND @MpLfdE) " & _
"ORDER BY V.MietBeginn"
cmd.Parameters.AddWithValue("@Haus", "xyz")
13.10.2014
muffi 1,4k 1 9

Stelle deine Mysql-Frage jetzt!