Форум: "Основная";
Текущий архив: 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