Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Вниз

Насчет Table.FieldCount(помогите с куском пргораммы)   Найти похожие ветки 

 
MakedoneZ ©   (2005-02-01 11:13) [0]

Предупреждаю я делитант и в Delphi почти ничего не умею.

Вот вам интересный кусок программки.
И у меня к профессионалам вопрос:

Имеется TDBGrid,в его третьем столбце проставляется либо "+" ,либо вообще ничего.
Программа проверяет кол-во период,то есть сколько раз чередуется такая комбинация:

один или подряд несколько плюсов,затем один или несколько подряд идущих пустот,затем подряд один или несколько плюсов. То есть это есть 1 период. Переменная же Cycle выдает кол-во таких периодов во всей таблице.

Вот код:

function CountCycles(Table: TTable; dbgCycle: TDBGrid) : Integer;

var
i: Integer;
Value: String;
Cycle: Byte;

begin
 i:=1;
 Cycle:=0;

 Table.First;
 if Table.Fields.Fields[2].AsString="+" then
  begin

    Repeat

     Table.Next;
     Inc(i);
     if Table.Fields.Fields[2].AsString<>"+" then
      begin

       Repeat
        Table.Next;
        Inc(i);
        if Table.Fields.Fields[2].AsString="+" then Inc(Cycle);
       Until (Table.Fields.Fields[2].AsString="+")OR(i=30);

      end;  //If

    Until i=30;

  end //If  else ShowMessage("*******");
   

 if cycle=0 then cycle:=1;

 CountCycles:=Cycle;

 end; //fUNCTION

Так вот все нормально если я за i равное кол-ву полей.
А вот вместо i=30  использую i=Table.FielCount  то рез-т бывает неверным. Дело в том что я взял для проверки i=30 когда число полей 30 тоесть статически,но при выполнении программы неизвестно настоящее кол-во полей,они создаются динамически,поэтому я пытаюсь использовать Table.FieldCount;
И вообще в отладчике делаю Inspect(z)   где z=Table.FieldCount,а он выдает: "Variable "z" inaccessible here due to optimization".
(сильно подозреваю что ф-я выдает,что-то другое,наверное я как-то неправильно ее использовал)

Еще раз напомню что я делитант.


 
Плохиш ©   (2005-02-01 11:19) [1]

Какая свызь между FieldCount и количеством записей в таблице?


 
Smithson   (2005-02-01 11:28) [2]

Пункт первый. Если присвоить значение перемнной, но больше ее нигде в функции не использовать, то все с ней связанное удалит оптимизатор. Поэтому лиюо смотреть в отладчике само значение Table.FieldCount, либо делать что-то типа MessageBox и выводить в нем значение искомой переменной.
Пункт второй. Что значит неверный результат? FieldCount указывает количество возвращенных запросом записей, а цикл надо делать от 0 до FieldCount-1.


 
Плохиш ©   (2005-02-01 11:33) [3]


>Smithson   (01.02.05 11:28) [2]
>Пункт второй. Что значит неверный результат? FieldCount указывает количество возвращенных запросом записей, а цикл надо делать от 0 до FieldCount-1.

Определения записи и поля знаем?


 
Igor_thief   (2005-02-01 11:39) [4]

Вместо FieldCountнадо RecordCount.


 
pasha_golub ©   (2005-02-01 11:39) [5]

Плохиш ©   (01.02.05 11:33) [3]
А зачем?


 
Smithson   (2005-02-01 11:42) [6]

Ээээ, пардон. Никогда не использовал родные борландовские Table. У них как-то по другому сделано? Тогда расскажи.


 
Плохиш ©   (2005-02-01 11:48) [7]


>Smithson   (01.02.05 11:42) [6]

>Ээээ, пардон. Никогда не использовал родные борландовские Table.
>У них как-то по другому сделано? Тогда расскажи.

Список компонентов, пожалуйста, у которых FieldCount показывает количество записей возвращаемых запросом.


 
MakedoneZ ©   (2005-02-01 12:25) [8]

Спасибо всем!



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.02.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
1-1106808161
dima
2005-01-27 09:42
2005.02.13
PChar


9-1099757382
Creep
2004-11-06 19:09
2005.02.13
Rotate in OpenGL


9-1100257007
Wish
2004-11-12 13:56
2005.02.13
Можно ли рисовать красиво?


14-1106664888
Soft
2005-01-25 17:54
2005.02.13
Как вы относитесь к безалкогольной водке?


4-1103179556
tradakad
2004-12-16 09:45
2005.02.13
И снова о окнах приложений





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский