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

Вниз

Глюк FieldByName()   Найти похожие ветки 

 
ancot   (2007-01-19 00:08) [0]

Всем доброй ночи. У меня такая беда:
На главной форме приложения есть TTable который
открывается в OnCreate формы.

Еще есть функция:

function GetConst(const AName: String): String;
begin
 Result := NalogDM.OrgTbl.FieldByName(AName).AsString;
end;


смысл надеюсь понятен.

При вызове функции
GetConst("NM");
возникает исключение EDatabaseError OrgTbl: Field"NM" not found., а если переписать функцию:
function GetConst(const AName: String): String;
begin
 Result := NalogDM.OrgTbl.FieldByName("NM").AsString;
end;

то все отрабатывает, подскажите плз куда рыть


 
Palladin ©   (2007-01-19 00:12) [1]

либо у тебя в вызове GetConst строка не "NM", либо обращение идет к какой то другой функции GetConst...


 
Palladin ©   (2007-01-19 00:13) [2]

а выводы о глючности метода FieldByName весьма и весьма поспешны...


 
ancot   (2007-01-19 00:28) [3]

поспешил...
вот что еще нарыл

function TFields.FindField(const FieldName: string): TField;
var
 I: Integer;
begin
 for I := 0 to FList.Count - 1 do
 begin
   Result := FList.Items[I];

   //Вот в этом месте AnsiCompareText не возвращает 0 даже
   //если оба параметра равны (по крайней мере в отладчике)
   if AnsiCompareText(Result.FFieldName, FieldName) = 0 then Exit;

 end;
 Result := nil;
end;


 
Palladin ©   (2007-01-19 00:36) [4]

ну это что то из области фантастики... строки не равны и мало ли что ты видишь глазами в отладчике... либо это системный сверхглюк... советую по индексу поля получить его имя и побайтово вывести две строки в лог... сразу все будет видно...


 
ancot   (2007-01-19 00:57) [5]


> либо это системный сверхглюк...

наверно, потому что не работает даже это:


> function GetConst(const AName: String): String;
>   var i: Integer;
>       s1, s2: String;
> begin
>   s1 := AName;
>   begin
>     for i := 0 to NalogDM.OrgTbl.Fields.Count - 1 do
>     begin
>       s2 := NalogDM.OrgTbl.Fields[i].FieldName;
>      
>       //вот тута "NM" <> "NM"
>       if s1 = s2 then  Result := NalogDM.OrgTbl.Fields[i].
> AsString;
>     end;
>   end;
> end;


да и на зрение не жаловался...


 
ancot   (2007-01-19 01:00) [6]

правда по кнопке "код" не попал...


 
Германн ©   (2007-01-19 01:03) [7]


> ancot   (19.01.07 00:57) [5]
>
>
> > либо это системный сверхглюк...
>
> наверно, потому что не работает даже это:
>
>

Не верю. Продолжай поиски.


 
sniknik ©   (2007-01-19 01:13) [8]

> //вот тута "NM" <> "NM"
if "NM" <> "NМ" then ShowMessage("а ведь действительно не равно! ;)");
скопируй отсюда и проверь.


 
ancot   (2007-01-19 01:25) [9]

Всем спасибо, всетаки надо задуматся о зрении, в функцию приходит строка с одинарными кавычками побокам,

"NM" <> ""NM""


 
Германн ©   (2007-01-19 01:35) [10]


> ancot   (19.01.07 01:25) [9]
>
> Всем спасибо, всетаки надо задуматся о зрении, в функцию
> приходит строка с одинарными кавычками побокам,
>
> "NM" <> ""NM""
>

Это действительно "системный сверхглюк"! Только вот виновата оказалась "другая сисиема" :)
P.S. Кстати "задуматься о зрении никогда не рано и часто полезно.


 
Германн ©   (2007-01-19 01:39) [11]

Прошу прощения за мой форумовский!
"сисиема" -> "система" :)



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

Текущий архив: 2007.04.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.046 c
1-1171135629
чуть помедленнее
2007-02-10 22:27
2007.04.08
TYPE CAST


2-1174379186
zdm
2007-03-20 11:26
2007.04.08
Пути не исповедимы


15-1173768840
ДмитрийЛ.
2007-03-13 09:54
2007.04.08
Проблема с выбором СУБД


15-1173862097
Галинка
2007-03-14 11:48
2007.04.08
Как в Visio перегнать структуру проекта


2-1173874819
TApp
2007-03-14 15:20
2007.04.08
ListView