Hallo, ich benutze Prepared Statements und SetDatabaseString() für den Zugriff auf eine Datenbank über ODBC.
Dummerweise habe ich ein Feld namens name, das scheinbar als Name reserviert ist und Probleme verursacht.
Leider funktionieren die als Alternativen aufgezeigten Schreibweise in Hochkommas und mit dem Tabellennamen vorangestellt nicht.
Ich bekomme jedes Mal den Fehler COUNT-Feld ungültig. Gibt es noch andere Möglichkeiten?
Ich habe keine Lust, den Feldnamen und seine zig Verwendungen zu ändern.
Prepared Statements und reservierte Namen
Prepared Statements und reservierte Namen
Win11 x64 | PB 6.20
Re: Prepared Statements und reservierte Namen
aus der Hüfte geschossen: Versuch mal, den Feldnamen mit eckigen Klammern zu schreiben.
Also '[Name]'. Vielleicht klappt es.
Grüße ... Peter
Also '[Name]'. Vielleicht klappt es.
Grüße ... Peter
a²+b²=mc²
Re: Prepared Statements und reservierte Namen
Geht leider nicht.
Muss ich die Prepared Statements wohl wieder rausschmeißen.
Muss ich die Prepared Statements wohl wieder rausschmeißen.
Win11 x64 | PB 6.20
Re: Prepared Statements und reservierte Namen
Was ist es denn für eine Datenbank?
Bei MySQL probier mal "`", also `name`.
Bei MySQL probier mal "`", also `name`.
Michael Hack
Michael Hack Software :: Softwareentwicklung | Webentwicklung | IT-Dienstleistungen
www.michaelhacksoftware.de :: www.mh-s.de :: www.michael-hack.de
Michael Hack Software :: Softwareentwicklung | Webentwicklung | IT-Dienstleistungen
www.michaelhacksoftware.de :: www.mh-s.de :: www.michael-hack.de
Re: Prepared Statements und reservierte Namen
Ich vergaß, es handelt sich um eine Access-Datenbank.
Seltsamerweise funktioniert diese Abfrage ohne Probleme: (2x String, 2xLong)
Allerdings diese nicht: (alles Strings)
Auch in der ersten, funktionierenden Abfrage, kommt name als Feldname vor, nur eben
als Teil einer anderen Tabelle. Warum funktioniert jetzt die erste, aber nicht die zweite Abfrage?
Seltsamerweise funktioniert diese Abfrage ohne Probleme:
Code: Alles auswählen
zQuery = "SELECT veranstaltung.id FROM veranstaltung, ort, adresse"
zQuery + " WHERE ort.id = veranstaltung.ort"
zQuery + " AND adresse.id = ort.adresse"
zQuery + " AND veranstaltung.name = ?"
zQuery + " AND adresse.ort = ?"
zQuery + " AND veranstaltung.datumvon = ?"
zQuery + " AND veranstaltung.datumbis = ?"
Allerdings diese nicht:
Code: Alles auswählen
zQuery = "SELECT adresse.id FROM adresse"
zQuery + " WHERE adresse.name = ?"
zQuery + " AND adresse.land = ?"
zQuery + " AND adresse.ort = ?"
zQuery + " AND adresse.plz = ?"
zQuery + " AND adresse.strassenr = ?"
zQuery + " AND adresse.tel1 = ?"
zQuery + " AND adresse.fax = ?"
zQuery + " AND adresse.email = ?"
Auch in der ersten, funktionierenden Abfrage, kommt name als Feldname vor, nur eben
als Teil einer anderen Tabelle. Warum funktioniert jetzt die erste, aber nicht die zweite Abfrage?
Win11 x64 | PB 6.20