Erro no módulo de Log com Firebird

Olá Pessoal,

Estou tentando criar o módulo de log em um projeto que já está funcionando, mas estou tendo problemas.

1 - Começa na criação da tabela sc_log que está dando o erro abaixo:

Criar sc_log…
Dynamic SQL Error SQL error code = -204 Table unknown SC_LOG At line 1, column 33.

2 - Quando uso o script abaixo gerado para criação da tabela dá erro no campo action (palavra reservada do firebird) e no create trigger (table unknown).

CREATE TABLE “sc_log” (
id INTEGER NOT NULL,
inserted_date TIMESTAMP,
username VARCHAR(90) CHARACTER SET NONE COLLATE NONE,
application VARCHAR(200) CHARACTER SET NONE COLLATE NONE,
creator varchar(30) NOT NULL,
ip_user varchar(32) NOT NULL,
action varchar(30) NOT NULL,
description VARCHAR(900) CHARACTER SET NONE COLLATE NONE,
CONSTRAINT PK_id PRIMARY KEY(id)
);

CREATE GENERATOR sc_log_ID;

SET GENERATOR sc_log_ID TO 0;

CREATE TRIGGER BI_sc_log_ID FOR sc_log
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(sc_log_ID, 1);
END

3 - Alterei o script conforme abaixo (tirei as aspas do nome da tabela e coloquei no nome do campo):

CREATE TABLE sc_log (
id INTEGER NOT NULL,
inserted_date TIMESTAMP,
username VARCHAR(90) CHARACTER SET NONE COLLATE NONE,
application VARCHAR(200) CHARACTER SET NONE COLLATE NONE,
creator varchar(30) NOT NULL,
ip_user varchar(32) NOT NULL,
“action” varchar(30) NOT NULL,
description VARCHAR(900) CHARACTER SET NONE COLLATE NONE,
CONSTRAINT PK_id PRIMARY KEY(id)
);

CREATE GENERATOR sc_log_ID;

SET GENERATOR sc_log_ID TO 0;

CREATE TRIGGER BI_sc_log_ID FOR sc_log
ACTIVE BEFORE INSERT
POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(sc_log_ID, 1);
END

4 - Tabela, generator e trigger criados.

5 - no SC criei o esquema

6 - Criei “Grid com relatório de log”

7 - Quando tento executar dá o seguinte erro:

                 2 = ibase_query(): Dynamic SQL Error SQL error code = -104 Token unknown - line 1, column 26 action 
                 C:\Program Files (x86)\NetMake\v8\wwwroot\scriptcase\prod\third\adodb\drivers\adodb-ibase.inc.php 366

8 - Testei com o Firebird 1.5 e 2.5 com o SC 7 até o 8.00.0006

Alguém teve este problema ?

João

Boa tarde,

Resolvi esse problema, apagando a tabela no banco de dados e criando-a novamente com letras em maiúsculo, SC_LOG.

Espero ter ajudado.

Rubens

Olá! Sei que o tópico é antigo, mas estou enfrentando o mesmo problema.
O que acontece é que existe um campo na tabela sc_log chamado “action”, mas esta palavra é reconhecida pelo Firebird como uma palavra interna ou função (ex: if… no action).
Rodando o script de criação manualmente, colocando a palavra action entre aspas, a tabela sc_log (ou qualquer outro nome que você tenha especificado) será criada normalmente. No entanto, quando você executar uma aplicação com o módulo de log ativo, o comando insert, definido pelo scriptcase, torna a utilizar a palavra action, mas sem aspas, e este comando até onde eu consegui saber não pode ser modificado. Ou seja, o módulo do log não funciona com o BD Firebird.
Caso alguém tenha um módulo de log rodando com este banco favor explicar a mágica! Obrigado.