Der BDE sagt: "Feld nicht gefunden", aber Feld vorhanden ist

Ich habe die folgende Abfrage, um eine meiner Datenbank-Tabellen:

select count(*) as mycount
  from mytable
 where fieldone = :fieldone
   and fieldtwo = :fieldtwo

Parameter korrekt geladen wird in die Abfrage (beide vom Typ String).

Wenn ich diese Abfrage ausführen, die außerhalb der app (z.B. durch die dbexplore) und ersetzen Sie die Parameter mit den tatsächlichen Werten, bekomme ich das richtige Ergebnis. Aber wenn es läuft in der app, bekomme ich eine Field 'fieldtwo' not found Fehler, direkt in die Abfrage ein.Open call.

Warum sollte die BDE nicht finden, Sie dieses Feld, wenn es tatsächlich existieren?

Update: Der folgenden Abfrage wird gestartet, unmittelbar nachdem der erste (der fehlschlägt), funktioniert in der app:

select *
  from mytable
 where fieldone = :fieldone
 order by fieldone, fieldtwo
Sie verändert das eigentliche SQL, hast du zufällig entfernen Sie die Bestellung, indem Sie auf die erste SQL-Anweisung? Als die fieldone & fieldtwo existieren nicht in der resultierenden Aussage und das würde das problem verursachen.
Mmm... Nein, ich hatte nicht entfernen order by - Klausel aus der ersten Anweisung. Ich habe gerade den Namen der Felder und Tabellen für die Abbildung einer generischen Szenario. Neben, es gibt keine Verwendung für eine order by - Klausel in einer Anweisung gibt eine einzelne Aggregat-Funktion.
Es ist kein problem, das "generische Szenario". SQL-Anweisung ausgeführt wird, OK. Problem ist woanders, aber die Frage nicht, geben Sie mir einen cue-wo es zu finden ist.

InformationsquelleAutor Pablo Venturino | 2011-02-21

Schreibe einen Kommentar