Lançado Adianti Framework 8.1!
Clique aqui para saber mais
Erro com firebird Olá pessoal, Estou tentando explorar uma base de dados já existente no firebird 2.5, na verdade pretendia ir migrando um sistema feito em delphi para php através do Adianti, fiz alguns cadastros através dele, deu belezinha. Mas quando cheguei em algumas tabelas começou a dar o seguinte erro: SQLSTATE[HY000]: General error: -104 Dynamic SQL Error SQL error code = -104 Token unknown - line 1...
JA
Erro com firebird  
Olá pessoal,
Estou tentando explorar uma base de dados já existente no firebird 2.5, na verdade pretendia ir migrando um sistema feito em delphi
para php através do Adianti, fiz alguns cadastros através dele, deu belezinha. Mas quando cheguei em algumas tabelas
começou a dar o seguinte erro: SQLSTATE[HY000]: General error: -104 Dynamic SQL Error SQL error code = -104 Token unknown - line 1,
column 15 1. O mais intrigante é que já fiz algumas rotinas pelo php pdo firebird acessando as mesmas tabelas e funcionou!
Será que alguém já passou por esta faze?

Desde já obrigado pela atenção.

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (3)


JA

Pessoal,
estou passando aqui para deixar uma dica,
comentei as linhas 120 e 124 do TSqlSelect.php e parou o erro
agora vou tentar resolver.
if ($limit)
{
// $this->sql .= ' FIRST ' . $limit;
}
if ($offset)
{
//$this->sql .= ' SKIP ' . $offset;
}
JA

Problema resolvido !
public function getInterbaseInstruction( $prepared )
{
// creates the SELECT instruction
$this->sql = 'SELECT ';

if ($this->criteria)
{
$limit = (int) $this->criteria->getProperty('limit');
$offset = (int) $this->criteria->getProperty('offset');

if ($limit)
{
$this->sql .= ' FIRST ' . $limit.' ';
}
else
$this->sql .= ' FIRST 10 ';

if ($offset)
{
$this->sql .= ' SKIP ' . $offset.' ';
}
else
$this->sql .= ' SKIP 0 ';
}

// concatenate the column names
$this->sql .= implode(',', $this->columns);

// concatenate the entity name
$this->sql .= ' FROM ' . $this->entity;

// concatenate the criteria (WHERE)
if ($this->criteria)
{
$expression = $this->criteria->dump( $prepared );
if ($expression)
{
$this->sql .= ' WHERE ' . $expression;
}

// get the criteria properties
$order = $this->criteria->getProperty('order');
$direction = in_array($this->criteria->getProperty('direction'), array('asc', 'desc')) ? $this->criteria->getProperty('direction') : '';

if ($order)
{
$this->sql .= ' ORDER BY ' . $order . ' ' . $direction;
}
}

// return the SQL statement
return $this->sql;
}
RP

João,

Tive o mesmo problema que vc e também apenas concatenei um espaço no final da instrução gerada nas linhas 120 e 124.
Legal lembrar que esse erro apenas acontecia com as tabelas onde o primeiro campo começa com a letra "E".

O TSqlSelect gerava sem um espaço e então o número com a letra "E" era considerado como número científico ex: 30E.

Falow!