![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Присвоение значения IbQuery.RecNo [D6]
DelphiN! © (2005-02-22 07:33:00)Пишу Query.RecNo := 2;, а присваивается 5 ! Вот код :
i := 1;
b := false;
f := SEANSES.Filter;
r := SEANSES.RecNo;
SEANSES.Filter := '';
Result.IP := '';
while (i <= Seanses.RecordCount) and (not b) do
begin
Seanses.RecNo := i; //Вот тут RecNo почемуто всегда равен 5, хотя RecordCount = 2, а значение возвращаемое Seanses.FieldByName('COMP_').AsString = 1-ой строке ! Переменная i же изменяется правильно (сначало 1, потом 2)
if Seanses.FieldByName('COMP_').AsString = IP then
begin
...
Почему ? Как это исправить ?
DelphiN! (2005-02-22 08:59:00) [21]
> [3] ЮЮ © (22.02.05 08:41)
> что значит "пятая запись" датасета
Это значит IBQuery.RecNo = 5; //А всего записей в таблице 2-е
У меня и так 1-н проход по датасету, вот полный код :
var
i: Integer;
b: Boolean;
f: string;
r: Integer;
Uslug: TUslug;
SQL: String;
begin
i := 1;
b := false;
f := SEANSES.Filter;
r := SEANSES.RecNo;
SEANSES.Filter := '';
Result.IP := '';
while (i <= Seanses.RecordCount) and (not b) do
begin
Seanses.RecNo := i;
if Seanses.FieldByName('COMP_').AsString = IP then
begin
Result.IP := IP;
Result.StartTime := Seanses.FieldByName('StartTime_').AsDateTime;
Result.EndTime := Seanses.FieldByName('EndTime_').AsDateTime;
Result.LeftTime := DateTimeToUnix(Result.EndTime) - DateTimeToUnix(now);
Result.State := Seanses.FieldByName('State_').AsString;
Result.Usluga := Seanses.FieldByName('Usluga_').AsString;
Uslug := GetUslugType(Result.Usluga,IpToNum(Result.IP),now,Tariffs);
if Uslug.Package then
begin
Result.AllMoney := Uslug.Price;
Result.LeftMoney := 0;
end
else
begin
Result.AllMoney := Seanses.FieldByName('Money_').AsFloat;
Result.LeftMoney := TimeToMoney(now, Result.EndTime, IpToNum(IP),
Result.Usluga, 0, Tariffs);
end;
Result.OFF := false;
Result.Name := IpToName(IP);
b := true;
end;
Inc(i);
end;
SEANSES.Filter := f;
SEANSES.RecNo := r;
end;
С парадоксом все работало на Ура, как перевел на IB все глючить стало !
ЮЮ (2005-02-22 08:41:00) [22]Извини, Паша, но здесь я не помощник. Такой метод навигации мне не понять, ну что значит "пятая запись" датасета ? Я бы запомнил значение ключевого поля (которого у тебя, пока, нет) и сделал бы Locate, на худой конец. М вообще бы обошёлся одним проходом по датасету. Твои манипуляции совершенно не понятны для моего уразумения :(
DelphiN! (2005-02-22 08:10:00) [23]А нет, тема не закрыта, оказывается FeetchAll не помог ... :(
DelphiN! (2005-02-22 07:49:00) [24]FetchAll забыл поставить, сорри, тема закрыта !