Новые книги

В той отрасли, где мы работаем, библиотека DirectDraw появилась довольно давно. Во всяком случае, за это время она успела доказать свои возможности, и о ней было написано несколько книг. Как обычно, эти книги отличаются по своему качеству. Однако в основном это были добротные учебники, которые (как и многие книги о компьютерах) были написаны за три месяца авторами, изучавшими предмет по ходу дела. В результате большинство этих книг содержит лишь подготовительный материал. Теперь, когда библиотека DirectDraw подросла и обрела свою репутацию (во всяком случае, она старше других компонентов DirectX), настало время уйти от основ и познакомиться с ее некоторыми нетривиальными возможностями.

Эта книга начинается с того, на чем другие книги обычно заканчивались. Мы поговорим об основах DirectDraw, но лишь в общих чертах. Читатель — опытный программист, но незнакомый с DirectDraw — сможет с ходу войти в курс дела. Затем мы перейдем к другим темам, столь же интересным, сколь и полезным.

Цель этой книги — научить вас работать с DirectDraw, а не предоставить некоторую «структурную основу» или нестандартный API, который бы выполнял за вас всю работу. Демонстрационные программы написаны на C++ и используют MFC, но совсем не для того, чтобы скрыть все технические подробности. С++ и MFC — превосходные инструменты, потому что с их помощью любое приложение можно написать несколькими разными способами. Примеры для этой книги были написаны так, чтобы при этом получались структурированные и удобные для чтения проекты, которые наглядно показывают, что и почему происходит в программе.

Помимо DirectDraw, во многих примерах используется библиотека DirectInput. Строго говоря, при программировании графики для Windows можно обойтись и без DirectInput, но ей все же стоит воспользоваться. Она работает быстрее традиционных средств ввода Windows и к тому же входит в DirectX, так что для работы с ней не потребуется никаких дополнительных SDK.
Управление сервисами ИТ (IT Service Management, ITSM) развивается в России на протяжении последних пяти-шести лет, однако этот рынок еще недостаточно велик. Работающие в данной области компании не спешат объединить усилия и создать отечественные , хотя уже обладают квалификацией в сфере организации эффективной работы департаментов информационных технологий в различных отраслях. Между тем за рубежом накоплен солидный опыт в организации ИТ. В 80-х гг. британское Центральное агентство по вычислительной технике и телекоммуникациям (ныне OGC) разработало принципы эффективного использования ресурсов ИТ в государственных учреждениях страны. В результате была создана (IT Infrastructure Library, ITIL), где собраны лучшие методы в сфере услуг ИТ. В настоящее время библиотека представляет собой подробное описание наиболее важных видов деятельности в работе ИТ, перечень сфер ответственности, задач и процедур, которые, как утверждается, можно адаптировать для любого предприятия, большого или малого, использующего услуги аутсорсинга ИТ или реализующего собственные службы. На базе библиотеки ITIL свои структурированные подходы к управлению услугами ИТ разработали такие компании, как HP, IBM и Microsoft.

Книга представляет введение в ИТ Сервис-менеджмент - передовой подход по управлению информационными технологиями (ИТ). Он основан на материалах лучшего мирового опыта, собранного и систематизированного в Библиотеке ITIL (IT Infrastructure Library).

sesam_fetch_array

Учебник РНР
НазадВперёд

sesam_fetch_array

(только PHP 3 CVS)

sesam_fetch_array - извлекает один ряд как ассоциативный массив.

Описание

array sesam_fetch_array (string result_id [, int whence [, int offset]])

Возвращает массив, соответствующий извлечённому ряду, или FALSE, если рядов больше нет.

sesam_fetch_array() это альтернативная версия sesam_fetch_row(). Вместо хранения данных в числовых индексах результирующего массива, она хранит их в ассоциативных индексах, используя в качестве ключей имена полей.

result_id это правильный результирующий идентификатор, возвращаемый функцией sesam_query() (только запросы типа select!).

О правильных значениях необязательных параметров whence и offset см. sesam_fetch_row().

sesam_fetch_array() извлекает один ряд данных из результата, ассоциированного со специфицированным результирующим идентификатором. Ряд возвращается как ассоциативный массив. Каждый столбец результата хранится с ассоциативным индексом, равным имени столбца (поля). Имена столбцов конвертируются в нижний регистр.

Столбцы без имени поля (например, результаты арифметических операций) и пустые поля не хранятся в этом массиве. Также, если два или более столбца результата имеют одинаковые имена столбцов, последний столбец имеет преимущество. В этой ситуации вызывайте sesam_fetch_row() или создайте псевдоним для столбца.

SELECT TBL1.COL AS FOO, TBL2.COL AS BAR FROM TBL1, TBL2

Специальная обработка даёт возможность извлекать "multiple field/многопольные" столбцы (которые иначе все имели бы одинаковые имена столбцов). Для каждого "multiple field"-столбца конструируется имя индекса путём присоединения строки "(n)", где n это субиндекс multiple field-столбца, в диапазоне от 1 до объявленного фактора повтора. Эти индексы - НЕ на базе 0, чтобы соответствовать номенклатуре синтаксиса соответствующего запроса/query. Для столбца, объявленного:

CREATE TABLE ... ( ... MULTI(3) INT )

ассоциативные индексы, используемые для отдельных "multiple field"-столбцов, будут "multi(1)", "multi(2)" и "multi(3)" соответственно.

Последующие вызовы sesam_fetch_array() возвратят следующий (или предыдущий, или n'ный следующий/предыдущий, в зависимости от атрибутов прокрутки) ряд результирующего набора, или FALSE, если рядов больше нет.

Пример 1. Массив извлечения SESAM
<?php
$result = sesam_query ("SELECT * FROM phone\n".
                       "  WHERE LASTNAME='".strtoupper($name)."'\n".
                       "  ORDER BY FIRSTNAME", 1);
if (!$result) {
    ... error ...
}
// print the table:
print "<TABLE BORDER>\n";
while (($row = sesam_fetch_array ($result)) && count ($row) > 0) {
    print " <TR>\n";
    print " <TD>".htmlspecialchars ($row["firstname"])."</TD>\n";
    print " <TD>".htmlspecialchars ($row["lastname"])."</TD>\n";
    print " <TD>".htmlspecialchars ($row["phoneno"])."</TD>\n";
    print " </TR>\n";
}
print "</TABLE>\n";
sesam_free_result ($result);
?>

См. также sesam_fetch_row(), которая возвращает индексированный массив.


Назад Оглавление Вперёд
sesam_execimm Вверхsesam_fetch_result