IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Lookupcombobox как правильно связать таблицы
сообщение
Сообщение #1


ыыыыщщщщщщыыыы
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Доброго времени суток,коллеги. Возникла такая проблема:
имеется 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?

Сообщение отредактировано: Feagor -


--------------------
Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


попробуй указать только ListSource и поле для отображения (ListField вроде) - при выборе пункта указатель записей будет перемещаться, останется только выбрать значение поля из таблицы

Сообщение отредактировано: Client -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


ыыыыщщщщщщыыыы
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


видишь ли, надо чтобы он передавал по выбранному указателю значение в другую таблицу, какой смысл мне делать просто чтобы листать? если бы надо было просто листать значения я бы поставил стандартный tcombobox и не напрягался


--------------------
Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Странно, на Access-овской базе все работает без лишних телодвижений (они ж с MSSQL Server-ом одной крови...), без смены типа Type_ID... Правда изначально я в таблице Tovar_Type ключевое поле сделал типа AutoNumber, а соответствующее ему Tovar.Type_ID - типа LongInteger (проверял на D2009)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 865
Пол: Мужской
Реальное имя: Вячеслав

Репутация: -  20  +


блин, или я пишу как-то не так или что, раз ты сам сказал что не получается взять значение автоматически, то бери это значение из таблицы. Лукап не просто пролистывает, он еще и указатель записей перемещает по таблице.
Ну тебе виднее что ты хочешь сделать. Удачи
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


ыыыыщщщщщщыыыы
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


Цитата(Client @ 29.05.2010 16:42) *

блин, или я пишу как-то не так или что, раз ты сам сказал что не получается взять значение автоматически, то бери это значение из таблицы. Лукап не просто пролистывает, он еще и указатель записей перемещает по таблице.
Ну тебе виднее что ты хочешь сделать. Удачи

при пролистывании он меняет указатель - это да. но так же он умеет осуществлять связь между 2 таблицами по ключевому полю,что мне и нужно.
Цитата

Странно, на Access-овской базе все работает без лишних телодвижений (они ж с MSSQL Server-ом одной крови...), без смены типа Type_ID... Правда изначально я в таблице Tovar_Type ключевое поле сделал типа AutoNumber, а соответствующее ему Tovar.Type_ID - типа LongInteger (проверял на D2009)


сделал в ацессе, действительно всё нормально передает,тут же переключаюсь на бд в sql servere и ошибка(((...странно

Добавлено через 3 мин.
вообще прикол. разобрался. ставлю вместо bigint - просто int и эврика, ошибки нету...принципиального отличия между int и bigint не вижу...странности к нам в дом идут


--------------------
Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


ыыыыщщщщщщыыыы
**

Группа: Пользователи
Сообщений: 68
Пол: Мужской
Реальное имя: Иван

Репутация: -  0  +


думаю тему можно закрыть за своей дальнейшей неактуальностью

Сообщение отредактировано: Feagor -


--------------------
Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 19.04.2024 20:18
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name