Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.18;
Скачать: CL | DM;

Вниз

WideString actual: Integer - Почему   Найти похожие ветки 

 
alex-drob   (2005-06-01 23:44) [0]

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


 
Reindeer Moss Eater ©   (2005-06-02 00:08) [1]

В статически созданных экземплярях полей TField


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


> ADODataSet2

ADODataSet1

В базе данных


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

В базе данных

А я и говорил про БД, а не про БТР.


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


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

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


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

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

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


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

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


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

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


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

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


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

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


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

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


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

Мышкой.


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


> Мышкой.

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


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

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


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

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


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

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


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

Ошибка есть.


 
Reindeer Moss Eater ©   (2005-06-02 01:07) [17]

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


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

Непомогает.

Поле первой таблицы 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:45) [19]

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


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

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


 
ANB ©   (2005-06-02 23:34) [21]

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


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

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2005.07.18;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.031 c
9-1112593955
4ECHOK
2005-04-04 09:52
2005.07.18
[GLScene] Загрузка карты из XML


3-1118267577
highlander
2005-06-09 01:52
2005.07.18
Работа с БД Firebird, Interbase в Делфи


1-1119987879
Чайник
2005-06-28 23:44
2005.07.18
Проблема с целочисленной переменной.


14-1119867598
stone
2005-06-27 14:19
2005.07.18
Начальник тупой?


3-1117704162
evg00
2005-06-02 13:22
2005.07.18
удаление записей