![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WideString actual: Integer - Почему [D7, Access]
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]
Я не понял о чем вы.