Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.13;
Скачать: CL | DM;

Вниз

Насчет 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.052 c
4-1104304430
tradakad
2004-12-29 10:13
2005.02.13
что неправильно при добавлении ?


1-1107234299
Andrey V.
2005-02-01 08:04
2005.02.13
TDateTimePicker и onChange


4-1104150188
Pavlik_Morozov
2004-12-27 15:23
2005.02.13
Как извлечь многоугольник из структуры TEMRExtSelectClipRgn?


1-1106847291
rel_
2005-01-27 20:34
2005.02.13
Маркеры в TChart


4-1104092956
Neiron
2004-12-26 23:29
2005.02.13
Сигнатуры в PE файле