powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Join и Locate
23 сообщений из 23, страница 1 из 1
Join и Locate
    #39616770
Kirhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу помощи у уважаемого сообщества!
Используется запрос с объединение данных из двух таблиц с помощью LEFT JOIN.
Все работает, данные видны. Но, ни в какую не работает Locate при подключении к MSSQL! При работе с MDB такой проблемы нет, все работает. Куда смотреть?
...
Рейтинг: 0 / 0
Join и Locate
    #39616776
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
шта ? ап чем топег ?
...
Рейтинг: 0 / 0
Join и Locate
    #39616777
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirhe,

это известный глюк MSSQL. Перебирай записи руками. А главное - никому код не показывай.
...
Рейтинг: 0 / 0
Join и Locate
    #39616781
Kirhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чччДKirhe,

это известный глюк MSSQL. Перебирай записи руками. А главное - никому код не показывай.
Ну раз глюк, то все понятно. Сам код здесь и не нужен, наверное, но главную суть уловил. Спасибо, значит будем ручками перебирать.
...
Рейтинг: 0 / 0
Join и Locate
    #39616784
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема может быть в несоответствии типов ключа искомой записи и имеющегося значения.
Особенно когда ключ нестандартный: н-р Binary.

Сделайте тестовый проект. Запомните ключ в переменную Variant, сместитесь на другую запись и попробуйте найти ее локейтом.
...
Рейтинг: 0 / 0
Join и Locate
    #39616788
Kirhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LSVПроблема может быть в несоответствии типов
Да нет, там все правильно у меня, вероятнее всего именно глюк MSSQL. Сделал ручным перебором и все заработало.
Всем спасибо, вопрос закрыт!
...
Рейтинг: 0 / 0
Join и Locate
    #39616804
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirheне работает Locate

ошибка в 13ой строке
...
Рейтинг: 0 / 0
Join и Locate
    #39616808
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV...Сделайте тестовый проект...
Некогда, трясти надо!
...
Рейтинг: 0 / 0
Join и Locate
    #39616829
Kirhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чччДНекогда, трясти надо!
X11ошибка в 13ой строке
Петросян детектед!
...
Рейтинг: 0 / 0
Join и Locate
    #39616865
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй обратиться в Битву экстрасенсов.
...
Рейтинг: 0 / 0
Join и Locate
    #39616866
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KirheНу раз глюк, то все понятно. Сам код здесь и не нужен, наверное, но главную суть уловил. Спасибо, значит будем ручками перебирать.
Юмора не понял, а жаль...
...
Рейтинг: 0 / 0
Join и Locate
    #39617514
Kirhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вынужденно поднимаю тему.
При большом количестве записей, ручной перебор начинает тормозить.

Итак, заново описываю задачу.
Имеется запрос:
Код: sql
1.
SELECT u.ID as ID, * FROM Units as u LEFT JOIN Finance as f ON f.FinanceID = u.ID


При таком запросе не работает DataSet.Locate('ID', IDValue, []) при подключении к mssql. С таким же запросом при подключении к mdb все работает.
Если запрос привести к виду:
Код: sql
1.
SELECT u.ID as ID, * FROM Units


то Locate начинает работать при работе с mssql.
...
Рейтинг: 0 / 0
Join и Locate
    #39617575
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirhe,

первое правило - описывайте все поля, а не используйте звёздочку.

а по теме: неужели просто так отказывается работать? или всё же какая-то ошибка есть? или неправильное поведение?
...
Рейтинг: 0 / 0
Join и Locate
    #39617576
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подключите к вашему запросу Грид и посмотрите, что в нём не так
...
Рейтинг: 0 / 0
Join и Locate
    #39617582
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrи посмотрите, что в нём не такСтавлю на дублирование поля ID
...
Рейтинг: 0 / 0
Join и Locate
    #39617634
Kirhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45Kirhe, неужели просто так отказывается работать? или всё же какая-то ошибка есть? или неправильное поведение?
Ошибок никаких нет. Просто всегда выбирается самая первая запись.
Надо попробовать перечислить в запросе нужные поля поименно
...
Рейтинг: 0 / 0
Join и Locate
    #39617645
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KirheОшибок никаких нет. Просто всегда выбирается самая первая запись.Locate - это функция. Какой она возвращает результат?
...
Рейтинг: 0 / 0
Join и Locate
    #39617649
Kirhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_KirheОшибок никаких нет. Просто всегда выбирается самая первая запись.Locate - это функция. Какой она возвращает результат?
Возвращает False
...
Рейтинг: 0 / 0
Join и Locate
    #39617656
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirhe_Vasilisk_пропущено...
Locate - это функция. Какой она возвращает результат?
Возвращает FalseА там случайно нет хвостовых пробелов ? Какого типа ключ ?
...
Рейтинг: 0 / 0
Join и Locate
    #39617668
Kirhe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45Kirhe, первое правило - описывайте все поля, а не используйте звёздочку.
Правило первое помогло. Выбрал нужные поля путем их перечисления и баг пропал. Видимо таки поле ID таки дублировалось, хотя в менеджере запросов mssql видно что имена полям присваиваются разные…
...
Рейтинг: 0 / 0
Join и Locate
    #39617862
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
SELECT u.ID as ID, * FROM Units as u LEFT JOIN Finance as f ON f.FinanceID = u.ID


первое поле в запосе
Код: sql
1.
u.ID as ID


Второй раз тоже самое поле
Код: sql
1.
*
...
Рейтинг: 0 / 0
Join и Locate
    #39617866
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirhe...Видимо таки поле ID таки дублировалось…

"Видимо"?
Когда код набирал - тебя там не было, или просто кодил ночью, в темноте?
...
Рейтинг: 0 / 0
Join и Locate
    #39618044
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBrВторой раз тоже самое полеНет. Тогда бы Locate работал. Он хватал ID из другой таблицы
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Join и Locate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]