Oznámení
Omlouváme se, provoz fóra byl ukončen
Jak odstranit hranaté závorky v selektu nad MSSQL
Upozornění: Tohle vlákno je hodně staré.
před 8 lety
- zahry
- Člen | 8
Mám pole
<?php
$args[] = 'CAST(Kontakty.Firma AS varbinary(MAX)) AS Firma';
$args[] = 'CAST(Kontakty.KontaktniOsoba AS varbinary(MAX)) AS KontaktniOsoba';
?>
Které vkládám do
<?php
$result = dibi::select($args)
->from('[ViewKontakty] Kontakty');
?>
Bohužel pokud uvedený select zobrazím přes test(), tak je vše obaleno hranatými závorkami.
<?php
SELECT
[CAST([[Kontakty].[Firma]] AS varbinary(MAX)) AS Firma],
[CAST([[Kontakty].[KontaktniOsoba]] AS varbinary(MAX)) AS KontaktniOsoba]
FROM [ViewKontakty] Kontakty
?>
Nevíte jak se těch závorek zbavit?
Zkoušel jsem různé varianty, ale nic nepomohlo.
Používám MSSQL
Díky
Editoval zahry (19. 7. 2011 19:20)
před 8 lety
- Milo
- Nette Core | 1119
Prosím tě, naformátuj to trochu ať se to dá číst.
před 8 lety
- Milo
- Nette Core | 1119
Pokud je SELECTu předán parametr pole, fluent má defaultní modifikátor %n, tj. počítá s tím, že jsou v argumentu názvy sloupců.
Dá se to řešit změnou modifikátoru
$mod = DibiFluent::$modifiers['SELECT'];
DibiFluent::$modifiers['SELECT'] = '%SQL'; // Nebo jiný, který se hodí
$args[] = 'CAST(Kontakty.Firma AS varbinary(MAX)) AS Firma';
$args[] = 'CAST(Kontakty.KontaktniOsoba AS varbinary(MAX)) AS KontaktniOsoba';
$fluent = dibi::select($args);
DibiFluent::$modifiers['SELECT'] = $mod; // Návrat původního modifikátoru
$fluent->from('[ViewKontakty] Kontakty')->test();