Ovladač pro MS SQL na linuxu, Dblib
- kralik
- Člen | 230
Ahoj,
snažím se připojit z Nette z linuxu na MS SQL.
Z čistého php přes ovladač DBLIB mi to funguje.
Přes Nette to bohužel nejde.
Config
...
hlm:
dsn: 'dblib:host=192.168.1.20\SQLEXPRESS;dbname=Test'
user: 'test'
password: 'blablabla'
...
Chyba
Class 'Nette\Database\Drivers\DblibDriver' not found
Zkopíroval jsem tedy Sqlsrv driver a vytvořil třídu
declare(strict_types=1);
namespace Nette\Database\Drivers;
use Nette;
/**
* Supplemental SQL Server 2005 and later database driver.
*/
class DblibDriver implements Nette\Database\ISupplementalDriver
...
Ale to nazabralo.
Mohu nějakým způsobem vytvořit vlastní Database driver?
Co vše je potřeba udělat?
Mooc díky za pomoc
- David Matějka
- Moderator | 6445
nevytvarej to v namespace Nette, ale ve vlastnim – treba App.
a potom v configu:
database:
dsn: ...
password: ...
....
options:
driverClass: App\Database\DblibDriver
- kralik
- Člen | 230
David Matějka napsal(a):
nevytvarej to v namespace Nette, ale ve vlastnim – treba App.
a potom v configu:
database: dsn: ... password: ... .... options: driverClass: App\Database\DblibDriver
Super, to bylo přesně ono. Mooc díky.
Už se s MS SQL spojím.
Bohužel se načtená data z MSSQL chovají zvláštně.
Použiji toto:
...
$res = $this->database->query(...)
->fetch();
bdump($res,'ResDBlib');
...
V některých QUERY mám výsledná data v pořádku a v jiných QUERY
dostanu NULL.
I přesto, že spouštěná QUERY je v pořádku a data vrátí.
Dokonce v TRACY je nad QUERY vidět ROW 1, takže to vypadá, že se nějaká
data načetla.
bdump, ale zobrazí NULL.
Tohle je pro mě zatím záhada
Nesetkal si se s něčím podobným?
Díky