tiny ‘n’ smart
database layer

Odkazy: dibi | API reference

Oznámení

Omlouváme se, provoz fóra byl ukončen

DibiMsSqlReflector bude? dibi1.3

před 9 lety

dk1844
Člen | 3

//Verze Dibi 1.3-dev 2010–11–09, php 5.3.1 vc6 xampp.

Ahoj, potreboval bych rozbehnout dibi na MSSQL (2008), dival jsem se na stable 1.2 a tam podpora moc nebyla, zkusil jsem 1.3 a tam uz je to o dost lepsi, jenom chybi DibiMsSqlReflector s metodami getTables, getColumns, getIndexes.

Budeto nekdo to v dohledne dobe nejak dodelavat? Rikal jsem si, ze bych to i zkusil, ale nevim, odkud si mam vytvorit funkcni DibiMsSqlDriver..?

zkousel jsem si to pro MySQL a pro jeho DibiMySqlDriver, abych to pak mohl zkusit na to MSSQL stejnym zpusobem, ale kod:

<?php
dibi::connect($options); //$options definovano, to funguje

$idibidriver = new DibiMySqlDriver();
$reflector = $idibidriver->getReflector();
$tables = $reflector->getTables();
print_r($tables);

?>

Dostavam:
Warning: mysql_errno() expects parameter 1 to be resource, null given in C:\xampp\htdocs\dibi-try\dibi\drivers\mysql.php on line 164

Fatal error: Call to a member function fetch() on a non-object in C:\xampp\htdocs\dibi-try\dibi\drivers\mysql.reflector.php on line 48

Kde delam chybu?

Predem diky moc za odpovedi..

Dan

Editoval dk1844 (13. 11. 2010 0:30)

před 9 lety

Milo
Nette Core | 1119

Jestli si chceš upravit dibi sám, uprav si v MSSQL (nebo MSSQL2005) driveru metodu getReflector() aby vracela $this, a do třídy driveru si přidej metody, které definuje IDibiReflector. Inspirace třeba v PostgreSQL driveru.

před 9 lety

dk1844
Člen | 3

Diky, uz jsem na to prisel, jak to mam udelat, abych mohl tu tridu rozsirovat.

Na tu metodu podle mysql jsem uz taky prisel, ted jen resim, jestli vlastne potrebuju ty metody getTables, getColumns a getIndexes ? K cemu to je? Pouzivam nad tim Nette, ale jeste ho moc neznam, tak nevim :)

a kdyby to nekoho zajimalo, tak ten testovaci skript jsem udelal takhle:

<?php

require "dibi/drivers/mssql.php";
$options = arrray ( ... );

$idibidriver = new DibiMsSqlDriver();
$idibidriver->connect($options);
$reflector = $idibidriver->getReflector();
$tables = $reflector->getTables();
print_r($tables);
?>

Nicmene diky za odpoved a i predem diky ostatnim za ostatni nazory na vec.

D.

Editoval dk1844 (13. 11. 2010 0:28)

před 9 lety

Milo
Nette Core | 1119

Spoustu odpovědí najdeš ve QuickStart.

Reflexe je dobrá k tomu, abys získal informace o struktuře databáze, ne datech. Pokud nevíš k čemu bys ji potřeboval, tak ji nepotřebuješ.

před 9 lety

dk1844
Člen | 3

OK, zamyslim se nad tim, diky moc za pomoc! :)