Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблемы с Query

263
28 апреля 2006 года
koltaviy
816 / / 16.12.2004
Всем привет. Проблема в следующем..
Имеется две таблицы Paradox.
Кидаем 2 Query BDE, 2 DataSource и DBLookUpComboBox..
В Query1 пишем "SELECT * FROM T1"
В Query2 пишем "SELECT * FROM T2"
Получается:
T1:
Num Type
S S

T2:
Num Name
S A

S-Short, A-Alpha

Datasource коннектим к своим Query.
В DBLookupComboBox задаем DataSource-DataSource1, DataField-Type; ListSource-DataSource2, ListField - Name, KeyField - Num.
И нифига не работает.. Список не раскрывается! Если сделать с DBLookupListBox, то список будет заполнен, но выбрать он ничо не дает..
Такая же проблема возникает при использовании BDE Query и DBGrid - изменять чо-то в DBGrid'е он не дает, хотя доступ к ячейкам есть..

Что происходит с использованием ADO Query:
Делаем все то же самое..
Список работает, но в списке отражается не кириллица, а чо-то типа псевды.. После выбора какого-то значения, почему-то оно не засовывается в саму таблицу. Может какой-то Update надо сделать?
Другая проблема: пишу в ADO Query:
Код:
SELECT ShieldMain.ShieldNumber,
               ShieldSize.Name,
               ShieldMain.Light,
               ShieldMain.Category,
               ShieldMain.Type,
               ShieldType.Name,
               ShieldMain.Price,
               ShieldPlaceBuilding.Name,
               ShieldPlace.Floor,
               ShieldPlaceRegion.Region1,
               ShieldPlaceRegion.Region2
FROM     ShieldMain,
               ShieldSize,
               ShieldType,
               ShieldPlaceBuilding,
               ShieldPlace,
               ShieldPlaceRegion
WHERE ShieldSize.SizeNumber = ShieldMain.ShieldSize AND
               ShieldType.TypeNumber = ShieldMain.Type AND
               ShieldPlace.ShieldNumber = ShieldMain.ShieldNumber AND                
               ShieldPlaceBuilding.BuildingNumber = ShieldPlace.Building AND
               ShieldPlaceRegion.ShieldNumber = ShieldMain.ShieldNumber

Это я пишу в дизайне.. Ставлю в Active.. Он мне говорит: "Непредвиденная ошибка драйвера внешней базы данных".
На BDE Query этот запрос отрабатывает на ура..
Помогите разобраться с этими проблемами..
1
28 апреля 2006 года
kot_
7.3K / / 20.01.2000
Цитата:
Originally posted by koltaviy
Всем привет. Проблема в следующем..
Имеется две таблицы Paradox.
Кидаем 2 Query BDE, 2 DataSource и DBLookUpComboBox..
В Query1 пишем "SELECT * FROM T1"
В Query2 пишем "SELECT * FROM T2"
Получается:
T1:
Num Type
S S

T2:
Num Name
S A

S-Short, A-Alpha

Datasource коннектим к своим Query.
В DBLookupComboBox задаем DataSource-DataSource1, DataField-Type; ListSource-DataSource2, ListField - Name, KeyField - Num.
И нифига не работает.. Список не раскрывается! Если сделать с DBLookupListBox, то список будет заполнен, но выбрать он ничо не дает..


Возможно ты забыл сделать активным Query2? Или запрос однонаправленный? По крайней мере поект составленный по твоим описаниям - полностью рабочий и никаких ошибок не выдает.

Цитата:
Originally posted by koltaviy

Такая же проблема возникает при использовании BDE Query и DBGrid - изменять чо-то в DBGrid'е он не дает, хотя доступ к ячейкам есть..


Что значит не дает - не сохраняет или выдает ошибку? Может у тебя курсор только для чтения?

Цитата:
Originally posted by koltaviy

Что происходит с использованием ADO Query:
Делаем все то же самое..
Список работает, но в списке отражается не кириллица, а чо-то типа псевды.. После выбора какого-то значения, почему-то оно не засовывается в саму таблицу. Может какой-то Update надо сделать?


Надо. Обрабатывай события BeforeEdit,AfterEdit и тому подобное. Или если на сейчас это сложно - просто используй DBNavigator.

Цитата:
Originally posted by koltaviy


Другая проблема: пишу в ADO Query:
Код:
SELECT ShieldMain.ShieldNumber,
               ShieldSize.Name,
               ShieldMain.Light,
               ShieldMain.Category,
               ShieldMain.Type,
               ShieldType.Name,
               ShieldMain.Price,
               ShieldPlaceBuilding.Name,
               ShieldPlace.Floor,
               ShieldPlaceRegion.Region1,
               ShieldPlaceRegion.Region2
FROM     ShieldMain,
               ShieldSize,
               ShieldType,
               ShieldPlaceBuilding,
               ShieldPlace,
               ShieldPlaceRegion
WHERE ShieldSize.SizeNumber = ShieldMain.ShieldSize AND
               ShieldType.TypeNumber = ShieldMain.Type AND
               ShieldPlace.ShieldNumber = ShieldMain.ShieldNumber AND                
               ShieldPlaceBuilding.BuildingNumber = ShieldPlace.Building AND
               ShieldPlaceRegion.ShieldNumber = ShieldMain.ShieldNumber

Это я пишу в дизайне.. Ставлю в Active.. Он мне говорит: "Непредвиденная ошибка драйвера внешней базы данных".
На BDE Query этот запрос отрабатывает на ура..
Помогите разобраться с этими проблемами..


Проверь какой драйвер используется - установлен ли он в системе - попробуй создать строку подключения и протестируй соединение. Кроме того, убедись, что соединение таблиц в принципе допустимо - т.е. не нарушаются условия целостности. Ну и используй джойн и псевдонимы таблиц в запросе - читать такой запрос будет гораздо легче.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог