На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> Query.Как полчить имя поля по индексу поля?
    Собственно в названии темы и есть вопрос.Не нашел соответствующих методов и свойств. Их просто нет?
      Зависит от типа БД. В MSSQL информацию о поляx можно получить, запросив данные из sys.indexes, sys.index_columns, sys.objects, sys.columns таблиц.
        Цитата Alex2011 @
        Собственно в названии темы и есть вопрос

        начнём с того, что разберёмся: что ты имееш ввиду говоря про индекс поля ?
          Имею ввиду функцию типа Query.Fields[0].FieldName,возвращающую имя поля,где 0-первое поле,1-второе и т.д. Хочется получить имя поля из свойств датасета
          Сообщение отредактировано: Alex2011 -
            Так я и думал, что вопрос не в индексах базы данных.
            Т.к. результат запроса находится в массиве, то и используй работу с массивами в php
            1. Список полей и структура массива
            ExpandedWrap disabled
                 function Button1Click($sender, $params)
                 {
                    $xarray = $this->Query1->Fields;
                    print_r($xarray);
                    echo "<BR>";
                    $xcount = count($xarray);
                    for($i = 1; $i <= $xcount; $i++)
                    {
                       echo key($xarray) . "<BR>";
                       next($xarray);
                    }
               
                 }

            2. Функци типа Query.Fields[0].FieldName
            ExpandedWrap disabled
              function ExtractFieldName($query, $findex)
                 {
                    $xarray = $query->Fields;
                    $xcount = count($xarray);
                    if($xcount == 0)
                    {
                       return '';
                    }
                    else
                    {
                       for($i = 0; $i < $xcount; $i++)
                       {
                          if($i == $findex)
                          {
                             return key($xarray);
                             break;
                          }
                          next($xarray);
                       }
                    }
                 }
               
              ....
              // вызываем так
              echo "Имя поля с кодом индекса=2 (отсчёт от 0-го поля): ".$this->ExtractFieldName($this->Query1, 2);
              Vicis,благодарю! Именно то, что нужно.
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0228 ]   [ 15 queries used ]   [ Generated: 7.05.24, 21:51 GMT ]