Autor Beitrag
Cuci
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 05.10.14 18:46 
Hallo, ich bin dabei, meine Anwendung von BDE auf MySQL umzustellen. Folgendes SQL-Statement wird von FireDAC bezüglich der MySQL-Syntax angemeckert:

'SELECT * FROM Vertrag V, Haeuser H ' +
'WHERE (V.Haus = H.Haus) ' +
'AND (H.Haus = :Haus) ' +
'AND (V.MietEnde BETWEEN :MpLfdA AND :MpLfdE) ' +
'ORDER BY V.MietBeginn';

Wäre schön, wenn mich jemand schlau machen könnte.
Einloggen, um Attachments anzusehen!
Lemmy
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 792
Erhaltene Danke: 49

Windows 7 / 10; CentOS 7; LinuxMint
Delphi 7-XE10.1, VS 2015
BeitragVerfasst: So 05.10.14 20:09 
Hi,
da dürfte der Vergleichsoperator noch fehlen:

dev.mysql.com/doc/re...rison-operators.html



user profile iconCuci hat folgendes geschrieben Zum zitierten Posting springen:

'SELECT * FROM Vertrag V, Haeuser H ' +
'WHERE (V.Haus = H.Haus) ' +
'AND (H.Haus = :Haus) ' +
'AND (V.MietEnde BETWEEN :MpLfdA AND :MpLfdE) =1 ' +
'ORDER BY V.MietBeginn';


oder =0 je nachdem was Du willst...
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 762
Erhaltene Danke: 127



BeitragVerfasst: So 05.10.14 21:03 
Eventuell ist das Datumsformat falsch?
Gib doch mal den Inhalt der Abfrage in einen String aus und lass Dir den Inhalt anzeigen bzw. veröffentliche diesen String hier.
Ich tippe auf einen Fehler in den Variablen in der Abfrage.

ub60
Cuci Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Di 07.10.14 13:41 
Ich glaube auch, dass es mit dem Format zu tun hat. Und ich würde auch gerne den vorgeschlagenen Test durchführen, nur wo? Ich vermute mal im MySQL-Server, mit dem ich aber noch auf dem Kriegsfuß stehe.

Die Date-Felder sind ja in MySQL im amerikanischen Format gespeichert. Wenn ich im Delphi das Programm ausführe werden sie im deutschen Format angezeigt. Kein Problem.

Ich habe diesen VIEW (Ansicht) in MySQL angelegt, hatte aber immer Fehlermeldungen im Zusammenhang mit den Parametern (Syntax-Error). Erst als ich die Doppelpunkte vor den Parametern durch '@' ersetzt hatte, wurde der VIEW angenommen, aber wenn ich den VIEW durchführe bekomme ich 0 Datensätze. Da beißt sich die Schlange in den Schwanz ...

Gruß Cuci
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Di 07.10.14 16:43 
Was gibt dir das denn zurück?

ausblenden SQL-Anweisung
1:
2:
3:
4:
5:
6:
7:
8:
9:
'SELECT ' +
  '* ' +
'FROM ' +
  'Vertrag V INNER JOIN Haeuser H ON V.Haus = H.Haus ' +
'WHERE ' +
  '(H.Haus = :Haus) ' +
  'AND (V.MietEnde BETWEEN '2000-01-01' AND '2014-10-07') ' +
'ORDER BY ' +
  'V.MietBeginn ';


Dann mach halt ein ShowMessage(sqlstring). Dann siehst du, was da drin steht.

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
Cuci Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Sa 11.10.14 20:45 
. . . ich habe die Abfrage im FireDAC-Monitor getestet, auch mit den Datumsangaben. Es gibt weder eine Fehlermeldung noch ein Resultat.
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mo 13.10.14 06:16 
Hast du denn schon mal andere Abfragen erstellt? Funktionieren die? Oder kann es sein, dass deine Verbindung nicht korrekt ist?

_________________
Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.