Rozszerzam warstwę danych istniejącej aplikacji do pracy z Firebird 2.5, oprócz MSSQL i SQLite, ale natknąłem się na przeszkodę.
Mam pole o nazwie TimeStamp, które przechowuje dane / czas jako typ TimeStamp. Działa to dobrze w MSSQL i SQLite, gdzie typem jest data / godzina, ale należy do Firebird. Następujący SQL:
SELECT SysTrnId,"TimeStamp" from "TRANSACTIONS"
pozornie działa, ale pole TimeStamp jest zwracane jako nazwa pola „CONSTANT”, a treść jest tekstem „timestamp”
Czy można to zrobić w Firebird, czy też będę musiał zmienić nazwę pola i zmienić kod w innych warstwach danych?
Odpowiedzi:
8 dla odpowiedzi № 1Znak ucieczki firebirda to podwójny cytat "
. Zauważ, że w Firebird, jeśli masz pole, które musisz uciec z podwójnymi cudzysłowami, to także rozróżnia małe i wielkie litery. Więc jeśli zadeklarowałeś swoje pole jako TimeStamp
, następnie select "TIMESTAMP" ...
zakończy się niepowodzeniem z błędem „nie znaleziono pola”.
1 dla odpowiedzi nr 2
Nie mam pojęcia, czy to działa, ale czy próbowałeś podwójnych cudzysłowów wokół „TimeStamp”, pojedyncze cudzysłowy zwykle oznaczają stały ciąg znaków.
pozdrowienia
K