Доброго времени суток,коллеги. Возникла такая проблема:
имеется 2 таблицы Tovar и Tovar_type, связанных через поле Type_id
Имеется форма добавления нового товара
---------------------------
Название | dbedit1
|
---------------------------
---------------------------
Тип товара | dblookupcombobox1 |
---------------------------
adoconnection, adoquery1,adoquery2,datasource1,datasource2
adoquery1.sql.text='select * from Tovar'
adoquery2.sql.text='select * from Tovar_type'
в dblookupcombobox1 указываю datasource=datasource1,datafield=type_id,listsource=datasource2,lisfield=type(н
азвание типа),keyfield=type_id
необходимо чтобы через dblookupcombobox1 можно было выбрать тип товара по имени и вокнуть его айдишник в поле type_id в таблице tovar.
запускаем. вроде всё нормально, но при попытке изменить dblookupcombobox1 вылетает ошибка
Cannot access field 'Type_id' as type Variant
кто сталкивался с таким, подскажите как это поправить
з.ы. юзаю делфи 7 и sql server 2008
з.ы.ы. знаю в принципе как сделать через ж#пу, но хочется сделать нормально
Добавлено через 19 мин.
я так понимаю здесь идет несоответствие типов, dblookupcombobox берет id перебивает его в variant, и затем пытается воткнуть этот variant в type_id имеющий тип integer
Добавлено через 7 мин.
сменил в таблице Tovar тип Type_id с bigint на char, ошибка пропала, но это не дело. Вопрос теперь ставится по другому - как сделать чтобы dblookupcombobox1 передавало в поле Type_id не Variant, а integer?
попробуй указать только ListSource и поле для отображения (ListField вроде) - при выборе пункта указатель записей будет перемещаться, останется только выбрать значение поля из таблицы
видишь ли, надо чтобы он передавал по выбранному указателю значение в другую таблицу, какой смысл мне делать просто чтобы листать? если бы надо было просто листать значения я бы поставил стандартный tcombobox и не напрягался
Странно, на Access-овской базе все работает без лишних телодвижений (они ж с MSSQL Server-ом одной крови...), без смены типа Type_ID... Правда изначально я в таблице Tovar_Type ключевое поле сделал типа AutoNumber, а соответствующее ему Tovar.Type_ID - типа LongInteger (проверял на D2009)
блин, или я пишу как-то не так или что, раз ты сам сказал что не получается взять значение автоматически, то бери это значение из таблицы. Лукап не просто пролистывает, он еще и указатель записей перемещает по таблице.
Ну тебе виднее что ты хочешь сделать. Удачи
думаю тему можно закрыть за своей дальнейшей неактуальностью