Форум: "Базы";
Текущий архив: 2007.04.08;
Скачать: [xml.tar.bz2];
ВнизГлюк 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.036 c