2009-11-26 17 views
3

Étendre la couche de données d'une application existante pour qu'elle fonctionne avec FireBird 2.5, en plus de MSSQL et de SQLite, mais a rencontré un problème.Utilisation de TimeStamp réservé en tant que nom de champ (Firebird 2.5)

J'ai un champ appelé TimeStamp qui stocke les données/temps comme type TimeStamp. Cela fonctionne bien sous MSSQL et SQLite où le type est datetime, mais tombe sous Firebird. SQL suivante:

[CODE] SELECT SysTrnId, 'TimeStamp' de "transactions" [/ CODE]

fonctionne apparemment, mais le champ TimeStamp est de retour comme fieldname "CONSTANT" et le contenu est le texte " timestamp "

Est-il possible de faire cela sous FireBird, ou vais-je devoir renommer le champ et changer le code dans les autres couches de données.

Merci

Colin

Répondre

6

Le caractère d'échappement est firebird la double citation ". Notez que dans Firebird si vous avez un champ que vous devez échapper avec des guillemets doubles, il devient également sensible à la casse. Donc, si vous avez déclaré votre champ comme TimeStamp, alors select "TIMESTAMP" ... échouera avec une erreur de champ non trouvé.

+0

Merci, qui l'a fait. Je me rends compte que le nom du champ devra être changé, mais j'ai besoin d'y remédier d'abord, avant de pouvoir plonger et de le faire dans les différentes bases de données supportées. Merci. – CDM

+0

Très utile. BTW, voici une liste complète des mots-clés réservés: http://www.firebirdsql.org/refdocs/langrefupd25-reskeywords-full-reswords.html – Peter

1

je ne sais pas si cela fonctionne, mais avez-vous essayé guillemets « TimeStamp », guillemets simples indiquent généralement une constante chaîne.

Cordialement
K

+0

Oui, j'ai essayé, mais a obtenu l'erreur: erreur SQL dynamique code d'erreur SQL = -206 colonne timestamp inconnue à la ligne 1, colonne 29 Colin – CDM