Lançado Adianti Framework 8.1!
Clique aqui para saber mais
Problema com TDBCombo na Locaweb Olá. Estou usando PHP 5.5 com MySQL (tanto na minha máquina de desenvolvimento quanto no servidor na locaweb). Tenho uma tela simples de cadastro de empresas e um dos campos é um TDBCombo com as UFs. O problema é que na minha máquina funciona sem nenhum problema, mas quando a aplicação sobe pra locaweb recebo o seguinte erro: SQLSTATE[42S02]: Base table or view not found: 1146 Tabl...
MT
Problema com TDBCombo na Locaweb  
Olá.

Estou usando PHP 5.5 com MySQL (tanto na minha máquina de desenvolvimento quanto no servidor na locaweb).

Tenho uma tela simples de cadastro de empresas e um dos campos é um TDBCombo com as UFs. O problema é que na minha máquina funciona sem nenhum problema, mas quando a aplicação sobe pra locaweb recebo o seguinte erro:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'bmslicdb.UF' doesn't exist


O estranho é outras telas, inclusive com outros TDBCombo funcionam corretamente...


Segue a msg de erro que recebo ao tentar acessar a tela de cadastro de empresas:

File: /lib/adianti/database/TRepository.php : 185
PDO->query(SELECT * FROM UF ORDER BY sigla )
File: /lib/adianti/widget/wrapper/TDBCombo.php : 72
AdiantiDatabaseTRepository->load(AdiantiDatabaseTCriteria object,)
File: /app/control/EmpresaFormView.class.php : 30
AdiantiWidgetWrapperTDBCombo->__construct(uf_id,lctdb,UF,id,sigla,sigla)
File: /lib/adianti/core/AdiantiCoreApplication.php : 60
EmpresaFormView->__construct(EmpresaFormView,onEdit,,hbuma6amt086q6t9fvj1pee304)
File: /engine.php : 21
AdiantiCoreAdiantiCoreApplication::run(1)
File: /engine.php : 34
TApplication::run(1)

Segue os dois arquivos de configuração do banco de dados:

Local (minha máquina): lctdb.ini

host = localhost
port = 3306
name = lctdb
user = lctuser
pass = xxx
type = mysql

Arquivo na locaweb: lctdb.ini

host = bmslicdb.mysql.dbaas.com.br
port = 3306
name = bmslicdb
user = bmslicdb
pass = xxx
type = mysql

Perceba que ambos os arquivos se chamam "lctdb.ini" e na chamada do construtor do TDBCombo o parâmetro databaseName recebe "lctdb". Por isso fiz um teste alterando o arquivo da minha máquina para um banco que criei com o mesmo nome do banco que está na locaweb. Na minha máquina continuou funcionando.

$uf_id = new TDBCombo('uf_id', 'lctdb', 'UF', 'id', 'sigla', 'sigla');


Alguém pode me ajudar com isso?

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 (1)


MT

Pessoal.

Eu mesmo achei o problema.

No model eu havia feito referência a
const TABLENAME = 'UF';

e no MySQL no Windows tava funcionando de boa.


Alterei para

const TABLENAME = 'uf';

E resolvido no linux da locaweb.

Depois vou investigar se o lance do case sensitive é coisa do sistema operacional ou do MySQL. De qqr forma foi resolvido.

Valeu.