PC
Erro de acesso a base de dados
Fechado
Criei um banco no sqlite3 loja.db, o arquivo ini loja.ini, criei uma tabela fornecedores e criei um control Fornecedores.class.php e um model Fornecedores.class.php, recebo uma mensagem de impossibilidade de conexão com a base de dados. Contudo acesso ela através de um browser sqlite
código do model
código do controle
código do model
- <?php
- class Fornecedores extends TRecord
- {
- const TABLENAME= 'fornecedores';
- const PRIMARYKEY= 'id';
- const IDPOLICY= 'max';
- }
- ?>
código do controle
- <?php
- class Fornecedores extends TPage
- {
- private $form;
- function __construct()
- {
- parent::__construct();
- try
- {
- $this->form = new TForm('form_fornecedor');
- $table = new TTable();
- $this->form->add($table);
- 704 = new TEntry('id');
- $nome = new TEntry('nome');
- 704->setSize(10);
- $nome->setSize(100);
- 704->setEditable(FALSE);
- $row=$table->addRow();
- $row->addCell(new TLabel('Código'));
- $row->addCell(704);
- $row=$table->addRow();
- $row->addCell(new TLabel('Razão Social'));
- $row->addCell($nome);
- $save_button = new TButton('save');
- $save_button->setAction(new TAction(array($this,'onSave')), 'Salvar');
- $save_button->setImage('ico_save.png');
- $new_button = new TButton('new');
- $new_button->setAction(new TAction(array($this,'onEdit')), 'Novo');
- $new_button->setImage('ico_new.png');
- $goto_button = new TButton('list');
- $goto_button->setAction(new TAction(array('RelacaoFornecedor','onReload')), 'listing');
- $goto_button->setImage('ico_datagrid.gif');
- $table_buttons = new TTable();
- $row=$table_buttons->addRow();
- $row->addCell($save_button);
- $row->addCell($new_button);
- $row->addCell($goto_button);
- $row=$table->addRow();
- $cell=$row->addCell($table_buttons);
- $cell->colspan=2;
- $this->form->setFields(array(704,$nome,$save_button,$new_button,$goto_button));
- parent::add($this->form);
- }
- catch (Exception $e)
- {
- new TMessage('error', $e->getMessage());
- }
- }
- }
- ?>
Paulo,
A Control não deve ter o mesmo nome da model.
Você deve chamar por exemplo "FornecedoresForm extends TPage"
Caso contrário, o mecanismo de carga de classes do framework não encontrará a classe correta.
O conteúdo de seu método construtor não precisa estar em um try/catch, já que você não realiza nenhuma operação de BD, que possa lançar uma exceção.
Por fim, você não abriu nenhuma transação, e também não declarou o método onSave().
att,
Pablo