Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > ADO + MSSQL 2012 не отдаёт данные типа Time


Автор: WolfMax 3.2.2015, 02:22
Добрый день, имеется MSSQL SERVER 2012 на нём БД с таблицей, в которой есть поле тиа TIME(7) (оно стало доступно в 2008 сервере), есть datetime. При подключении через ADODB и Execute запроса SELECT * FROM table_name получаю Handle, делаю fetch первой записи поле типа datetime выводиться через echo , а поле типа time - нет. Какое может быть универсальное решение?  CAST и CONVERT не очень подходят.

Код



<?php

$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=localhost;
Initial Catalog=database; User ID=user; Password=password");

$rs = $conn->Execute("SELECT * FROM sometable");    // Recordset

$num_columns = $rs->Fields->Count();
echo $num_columns . "\n";

for ($i=0; $i < $num_columns; $i++) {
    $fld[$i] = $rs->Fields($i);
}

$rowcount = 0;
while (!$rs->EOF) {
    for ($i=0; $i < $num_columns; $i++) {
        echo $fld[$i]->value . "\t";           // ПЕРВЫЙ СТОЛБЕЦ ТИПА datetime выводиться, а второй типа TIME - нет! Почему?
    }
    echo "\n";
    $rowcount++;            // increments rowcount
    $rs->MoveNext();
}

$rs->Close();
$conn->Close();

$rs = null;
$conn = null;

?>



Автор: Akina 3.2.2015, 09:05
Как я понимаю, тот же запрос, но выполненный через, например, Management Studio, данные показывает нормально.
Если так - то вопрос не к SQL-серверу, а к библиотеке либо драйверу доступа.

Автор: WolfMax 3.2.2015, 15:11
Цитата(Akina @ 3.2.2015,  09:05)
Как я понимаю, тот же запрос, но выполненный через, например, Management Studio, данные показывает нормально.
Если так - то вопрос не к SQL-серверу, а к библиотеке либо драйверу доступа.

Да, если выполнить запрос в менеджере запросов напрямую, то всё показывается. Вот как заставить ADO отдвать данные типа Time - это вопрос!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)