Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WideString actual: Integer - Почему [D7, Access]


Страницы:   1 2

alex-drob ©   (2005-06-01 23:44:00) 

Есть две таблицы, одна отображается на экране в DBGrid и в ней есть поле lookup типа String. При выборе в нём значения, в другое поле должно занестись в id второй таблицы, в обоих таблицах поля типа integer. При выполнении ADODataSet2.activate:=true; происходит ошибка WideString actual: Integer. Если в первой таблице поменять тип поля id на String то всё работает. В чём ошибка?


alex-drob   (2005-06-03 00:33:00) [1]

Всё заработало. Так и не понял в чём ошибка! Несколько раз всё переделал и работает.

Спасибо всем.


alex-drob   (2005-06-02 23:45:00) [2]

Type в lookup поле это тип поля который будет отображён в DBGrid там хоть string хоть integer ставлю работает одинаково.

Если я правельно понял свойства lookup поля:

key fields - поле в которое в первую таблицу будет внесено значение со второй (integer)
dataset - это dataset второй таблицы
lookup keys - поле второй таблицы которое будет вставлено в первую (integer)
Result field - поле второй таблицы, текст которого будет в lookup поле lookup keys

то всё должно работать ведь type поля key fields = type поля lookup keys


ANB   (2005-06-02 23:34:00) [3]

Значит не все или неправильно указал в настройках локапового поля.


alex-drob   (2005-06-02 23:04:00) [4]

Не чего не получается, переделал всё заново, таже ошибка. Единственное поле для которого я не могу найти значение типа TFild это само поле lookup. Но у него тип String оно не должно влиять.


Reindeer Moss Eater   (2005-06-02 01:45:00) [5]

Еще раз и в последний раз:
Читай все сначала.
Или сразу с поста номер пять.


alex-drob   (2005-06-02 01:24:00) [6]

Непомогает.

Поле первой таблицы integer
Поле второй таблицы счётчик (пробывал integer)
Поле экземплятора 1 таблицы ftinteger
Поле экземплятора 2 таблицы ftautoinc

Ошибка: Type mismatch for field 'pred', expecting: WideString actual: Integer.
('pred' поле в первой таблице)

lookup:
name = predmet
component = ADODataSet1predmet
Type = String
Size = 15
field type = lookup
key fields = pred  (integer)
dataset = ADODataSet2
lookup keys = id (autoinc)
Result field = name (string 15)


Reindeer Moss Eater   (2005-06-02 01:07:00) [7]

Ошибка есть потому что читай все сначала.


alex-drob   (2005-06-02 01:05:00) [8]

Ошибка есть.


Reindeer Moss Eater   (2005-06-02 01:00:00) [9]

Значит и ошибки уже нет.


alex-drob   (2005-06-02 00:59:00) [10]

Такого поля нет.


Reindeer Moss Eater   (2005-06-02 00:54:00) [11]

Щелкай мышкой туда, где поле ftWideString


alex-drob   (2005-06-02 00:48:00) [12]


> Мышкой.

Ну до этого я сам додумался. А вот где мышкой шёлкнуть не знаю. Если в свойстве FieldDefs, то там типы у одного поля ftinteger а у другого ftautoinc.


Reindeer Moss Eater   (2005-06-02 00:44:00) [13]

Мышкой.


alex-drob   (2005-06-02 00:42:00) [14]

А как можно изменить тип экземпляра TField?


Reindeer Moss Eater   (2005-06-02 00:40:00) [15]

Они разные.
У экземпляра TField и у физического поля в таблице БД.


alex-drob   (2005-06-02 00:38:00) [16]

А как? В таблицах они одинаковы.


Reindeer Moss Eater   (2005-06-02 00:37:00) [17]

Сделать оба типа одинаковыми.


alex-drob   (2005-06-02 00:32:00) [18]

А как это можно исправить?


Reindeer Moss Eater   (2005-06-02 00:31:00) [19]

В чем ошибка был вопрос.
Ответ:
Ошибка в экземплярах полей TField, созданных статически в design time.
Все они получают конкретный тип в время создания.

Одно из них получило тип WideString.
В то время как в БД это поле Integer;


alex-drob   (2005-06-02 00:26:00) [20]


> Reindeer Moss Eater ©   (02.06.05 00:08) [1]

Я не понял о чем вы.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо