Subject | Re: [firebird-support] problem creating trigger FB 1.5 |
---|---|
Author | Thomas Steinmaurer |
Post date | 2011-11-15T09:14:50Z |
> OK, Action was a bad choice of field name, but this was not ourselves butYes in general, it's a property at database level, but in practice, it's
> the company that
> provides this software, iSoft.
> Is the only option then to change the database to dialect 3?
> Is that possible?
more complicated, because:
- The DATE data type only holds the date portion while in dialect 1 it
is date and time
- Using double-quotes for string delimiters fails in dialect 3, because
dialect 3 treats them as object names instead of string literals
- Numeric representation changed
etc ...
Switching to dialect 3 usually means:
- Migrating data to dialect 3
- Entirely re-test the application
I wonder if you can do a simple:
select action from audit_trial
In a Firebird 1.5 database? That said, I can't remember if ACTION is a
reserved keyword in 1.5.
--
With regards,
Thomas Steinmaurer
* Upscene Productions - Database Tools for Developers
http://www.upscene.com/
* My Blog
http://blog.upscene.com/thomas/index.php
* Firebird Foundation Committee Member
http://www.firebirdsql.org/en/firebird-foundation/
> RBS
>
> On Tue, Nov 15, 2011 at 8:49 AM, Bart Smissaert<bart.smissaert@...>wrote:
>
>> > Use non-reserved keywords as object names in a dialect 1 database
>>
>> Is there a way to do that?
>>
>> RBS
>>
>> On Tue, Nov 15, 2011 at 8:43 AM, Thomas Steinmaurer<ts@...
>>> wrote:
>>
>>> **
>>>
>>>
>>> > Running Firebird 1.5, classic, dialect 1 on Windows and trying to
>>>> create a trigger like this:
>>>>
>>>> CREATE TRIGGER EXTENDED_TEXT_DEL FOR EXTENDED_TEXT
>>>> ACTIVE BEFORE DELETE
>>>> POSITION 10
>>>> AS
>>>> begin
>>>> insert into audit_trail
>>>> (Table_Id,"Action",Primary_Key,data)
>>>> values (45, 1,
>>>> old.Extended_Text_Type||"|"||
>>>> old.Foreign_Id||"|"||
>>>> old.Extended_Text_Sequence_No,
>>>> old.Extended_Text_Type||"|"||
>>>> old.Foreign_Id||"|"||
>>>> old.Extended_Text_Sequence_No||"|"||
>>>> old.Free_Text
>>>> );
>>>> END
>>>>
>>>> which will give the following error:
>>>>
>>>> Dynamic SQL Error
>>>> SQL error code = -817
>>>> Metadata update statement is not allowed by the current database SQL
>>> dialect 1.
>>>>
>>>> Note the double quotes around the field name Action.
>>>>
>>>> Any idea how I can run this statement?
>>>
>>> You can't with dialect 1. Delimited identifiers are supported by dialect
>>> 3. Use non-reserved keywords as object names in a dialect 1 database.
>>>
>>> --
>>> With regards,
>>> Thomas Steinmaurer
>>>
>>> * Upscene Productions - Database Tools for Developers
>>> http://www.upscene.com/
>>>
>>> * My Blog
>>> http://blog.upscene.com/thomas/index.php
>>>
>>> * Firebird Foundation Committee Member
>>> http://www.firebirdsql.org/en/firebird-foundation/
>>>
>>>
>>>
>>
>>
>
>
> [Non-text portions of this message have been removed]
>
>
>
> ------------------------------------
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Visit http://www.firebirdsql.org and click the Resources item
> on the main (top) menu. Try Knowledgebase and FAQ links !
>
> Also search the knowledgebases at http://www.ibphoenix.com
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> Yahoo! Groups Links
>
>
>