Текущий архив: 2005.10.09;
Скачать: CL | DM;
Вниз
Много полей в таблице??? Найти похожие ветки
← →
Гость22 (2005-08-30 17:06) [0]Есть таблица Парадокс. Когда пытаюсь ввести в поле (напр "ddd") значение, пишет, что такого поля нет. Хотя я знаю, что есть. Это поле 62-е по списку. Если ставлю тут же вместо "ddd" любое другое поле - нормально заносит в таблицу. В чем может быть проблема? Нигде не встречал, что в таблице Парадокс должно быть только 61-о поле.
← →
Digitman © (2005-08-30 17:35) [1]т.е. в ответ на попытку
SomeDataSet.FieldByName("ddd").Value := ...;
возникает исключение ?
а что говорит в ответ на
SomeDataSet.Fields[61].Value := ...;
?
и чему равно
SomeDataSet.Fields.Count
?
← →
Гость22 (2005-08-30 17:56) [2]
> т.е. в ответ на попытку
> SomeDataSet.FieldByName("ddd").Value := ...;
> возникает исключение ?
Совершенно верно
> SomeDataSet.Fields[61].Value := ...;
Ничего не говорит - пропускает, но записи в поле нет.
Но, интересно - когда поставил
Table1.Fields[2].Value := ...;, почему-то записало в третье поле.
> SomeDataSet.Fields.Count
равно 71. Не знаю, почему.
← →
stone © (2005-08-30 17:59) [3]
> Но, интересно - когда поставил
> Table1.Fields[2].Value := ...;, почему-то записало в третье
> поле.
Потому что счет начинается с 0.
← →
Digitman © (2005-08-30 18:01) [4]а что говорит Table1юFields[61].Name ?
> когда поставил
> Table1.Fields[2].Value := ...;, почему-то записало в третье
> поле
правильно записало.
индексация полей в списке начинается с нуля, а не с единицы
← →
Гость22 (2005-08-30 18:10) [5]
> а что говорит Table1юFields[61].Name ?
"йцук" is not a valid component name.
Где "йцук", то что я заношу в поле.
← →
Digitman © (2005-08-30 18:12) [6]пардон, не Table1.Fields[61].Name, а Table1.Fields[61].FieldName
?
← →
Гость22 (2005-08-30 18:20) [7]
> Table1.Fields[61].FieldName
??? Ничего не понимаю. Выдало имя поля, которое идет в списке полей под номером 55!
Но ведь и общее число полей показало 71, хотя их 62!
← →
Digitman © (2005-08-30 18:36) [8]не путай индекс объекта TField в списке DataSet.Fields - он НЕ обязан соответствовать порядковому номеру поля в структуре подлежащего таблицы или запроса
порядковый номер поля, для доступа к которому был создан объект TField, м.б. получен чтением св-ва TField.FieldNo (нумерация здесь начинается с единицы)
проверь :
with Table1 do
for i:= 0 to Fields.Count - 1 do
begin
with Fields[i] do
Memo1.Lines.Add(Format("Field index:%d FieldNo:%d FieldName:%s DisplayName:%s", [i, FieldNo, FieldName, DisplayName]));
end;
← →
Гость22 (2005-08-30 19:31) [9]проверил.
FieldName всегда совпадает с DisplayName
а Field index меньше на единицу от FieldNo. Всего FieldNo - 62 (и Field index, соответсвенно - 61) Вроде так должно и быть?
← →
Гость22 (2005-08-30 20:12) [10]извиняюсь. То что выше написал - проверил отдельно от приложения.
Но когда проверил в приложении, получился какой-то бред!
Есть поля, у которых FieldNo равен -1 (насколько я понял - это LookUp поля). Но почему не показывает поля "ddd"?
← →
Digitman © (2005-08-31 09:25) [11]ты вообще-то как формировал список объектов TFields - в дизайн-тайм или в ран-тайм ?
если в в дизайн-тайм - "ручками" добавлял по одному или ничего явно не добавлял, а доверил это эксперту ?
судя по "FieldNo равен -1" поля ты добавлял "ручками", явно указывая их FieldKind ..
просмотри в дизайнере все поля в списке и найди среди них поле, имеющее FieldKind = fkData и FieldName = "ddd", если не найдешь, то в ран-тайм оно уж и подавно не найдется
Страницы: 1 вся ветка
Текущий архив: 2005.10.09;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.011 c