Problém s NetteDatabse v MSSQL 2012 – Table does not have a primary key
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- vEnCa-X
- Člen | 6
Zdravim.
Snažím se připojit do MSSQL 2012 (připojení do MSSQL2008 mi fungovalo)
config.neon:
nette:
database:
sqlsrv2012:
dsn: 'sqlsrv:Server=192.168.1.1\MSSQL2012;Database=nette'
user: sa
password: xxx
services:
- SQLSrv2012Facade(@nette.database.sqlsrv2012)
Model:
class SQLSrv2012Facade
{
private $database;
function __construct(Nette\Database\Connection $database)
{
$this->database = $database;
}
function getMySelect()
{
return $this->database->query( "SELECT * FROM table1" );
}
function getNetteDatabase()
{
return $this->database->table( "table1" );
}
public function getInfo()
{
dump( $this->database->getDsn() );
}
}
Presenter
class HomepagePresenter extends BasePresenter
{
private $sqlSrv2012Facade;
public function __construct( SQLSrv2012Facade $sqlSrv2012Facade )
{
$this->sqlSrv2012Facade = $sqlSrv2012Facade;
}
public function renderDefault()
{
$this->sqlSrv2012Facade->getInfo();
//$this->template->result = $this->sqlSrv2012Facade->getMySelect(); //funguje
$this->template->result = $this->sqlSrv2012Facade->getNetteDatabase();//ERROR
}
Chyba nastává když použiji funkci getNetteDatabase, která vrací tuto
chybu: Table „table1“ does not have a primary key. Přitom,
tabulka má primární klíč.
Funkce getMySelect, funguje korektně.
Šablona:
<tr n:foreach="$result as $row">
<td>{$row->name}</td>
</tr>
Databáze:
CREATE TABLE [dbo].[table1] (
[id] int NOT NULL,
[name] varchar(50) COLLATE Czech_CI_AS NULL,
PRIMARY KEY CLUSTERED ([id])
WITH (
PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF,
ALLOW_ROW_LOCKS = OFF, ALLOW_PAGE_LOCKS = OFF)
)
ON [PRIMARY]
GO
Cache jsem promazal :-)
Dělám někde chybu, nebo je problém v Nette?