Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.029 c
9-1117707275
WondeRu
2005-06-02 14:14
2005.10.09
OpenGL портит виндовские хинты! Как бороться?


1-1127216851
stals
2005-09-20 15:47
2005.10.09
Как обнаружить, что вставили дискету?


1-1127128666
freshman
2005-09-19 15:17
2005.10.09
преобразование данных


6-1118391561
dDan
2005-06-10 12:19
2005.10.09
Ошибка при Get


14-1127249587
Джо
2005-09-21 00:53
2005.10.09
Проверка доступности сайта