![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() ![]() |
![]() |
Feagor |
![]()
Сообщение
#1
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
Доброго времени суток,коллеги. Возникла такая проблема:
имеется 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 - 28.05.2010 14:32 -------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
Client |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
попробуй указать только ListSource и поле для отображения (ListField вроде) - при выборе пункта указатель записей будет перемещаться, останется только выбрать значение поля из таблицы
Сообщение отредактировано: Client - 28.05.2010 16:44 |
Feagor |
![]()
Сообщение
#3
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
видишь ли, надо чтобы он передавал по выбранному указателю значение в другую таблицу, какой смысл мне делать просто чтобы листать? если бы надо было просто листать значения я бы поставил стандартный tcombobox и не напрягался
-------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Странно, на Access-овской базе все работает без лишних телодвижений (они ж с MSSQL Server-ом одной крови...), без смены типа Type_ID... Правда изначально я в таблице Tovar_Type ключевое поле сделал типа AutoNumber, а соответствующее ему Tovar.Type_ID - типа LongInteger (проверял на D2009)
|
Client |
![]()
Сообщение
#5
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 865 Пол: Мужской Реальное имя: Вячеслав Репутация: ![]() ![]() ![]() |
блин, или я пишу как-то не так или что, раз ты сам сказал что не получается взять значение автоматически, то бери это значение из таблицы. Лукап не просто пролистывает, он еще и указатель записей перемещает по таблице.
Ну тебе виднее что ты хочешь сделать. Удачи |
Feagor |
![]()
Сообщение
#6
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
блин, или я пишу как-то не так или что, раз ты сам сказал что не получается взять значение автоматически, то бери это значение из таблицы. Лукап не просто пролистывает, он еще и указатель записей перемещает по таблице. Ну тебе виднее что ты хочешь сделать. Удачи при пролистывании он меняет указатель - это да. но так же он умеет осуществлять связь между 2 таблицами по ключевому полю,что мне и нужно. Цитата Странно, на Access-овской базе все работает без лишних телодвижений (они ж с MSSQL Server-ом одной крови...), без смены типа Type_ID... Правда изначально я в таблице Tovar_Type ключевое поле сделал типа AutoNumber, а соответствующее ему Tovar.Type_ID - типа LongInteger (проверял на D2009) сделал в ацессе, действительно всё нормально передает,тут же переключаюсь на бд в sql servere и ошибка(((...странно Добавлено через 3 мин. вообще прикол. разобрался. ставлю вместо bigint - просто int и эврика, ошибки нету...принципиального отличия между int и bigint не вижу...странности к нам в дом идут -------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
Feagor |
![]()
Сообщение
#7
|
![]() ыыыыщщщщщщыыыы ![]() ![]() Группа: Пользователи Сообщений: 68 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
думаю тему можно закрыть за своей дальнейшей неактуальностью
Сообщение отредактировано: Feagor - 29.05.2010 19:37 -------------------- Никогда не задавайте вопрос, если не уверены, что хотите получить ответ...
|
![]() ![]() |
![]() |
Текстовая версия | 13.07.2025 6:04 |