Форум: "Начинающим";
Текущий архив: 2011.09.04;
Скачать: [xml.tar.bz2];
ВнизПоиск в ADOTable Найти похожие ветки
← →
Соня (2011-05-18 10:27) [0]Здравствуйте. Хочу сделать поиск в ADOTable с помощью Locate. Пишу нижеследующее:
AllADOElements.CassettesTable.Locate( "Cassettes.Title",
VarArrayOf( [ FindCassetteTitleEdit.Text ] ), [ loCaseInsensitive ] )
Выдаёт ошибку, что loCaseInsensitive неизвестен... Может дело в версии Delphi? Тогда, чем заменить эту опцию?
И ещё: если оставить скобки пустыми, то поиск не происходит. Вернее Locate возвращает false... Хотя искомые данные в таблице есть...
← →
Anatoly Podgoretsky © (2011-05-18 10:29) [1]Просто в uses не указан один из правильных модулей, посмотри по справке какой.
ЗЫ: для указаного примера VarArrayOf не требуется и вреден
← →
sniknik © (2011-05-18 10:36) [2]> Может дело в версии Delphi?
в мозгах у тебя дело.
> Тогда, чем заменить эту опцию?
мозгами программиста.
p.s. опять ADOTable...
> Хотя искомые данные в таблице есть...
а в РЕКОРСЕТЕ??? а названия полей РЕКОРСЕТА???
ну сколько можно говорить что это разные вещи, таблица в базе и набор данных в программе, да получено "на сновании" но НЕ ОДНО И ТОЖЕ.
p.p.s и не надо говорить, что ты это знаешь, даже если так то эти знания для тебя "мертвый груз".
← →
Соня (2011-05-18 10:37) [3]А про поиск можете что-нибудь подсказать?
← →
Соня (2011-05-18 10:41) [4]sniknik
У вас нервы не в порядке? К врачу не пробовали обратиться?
← →
sniknik © (2011-05-18 11:00) [5]у меня отличные нервы, и спокоен как удав... просто давно замечено, до некоторых не доходит хоть сто раз им спокойно и аргументированно объясняй. но стоит один раз "прикрикнуть", а еще лучше "дать в ухо"... и все непонимание "как рукой сымает".
← →
Соня (2011-05-18 11:05) [6]Да неужели? По-помоему непонимание снимает как раз таки нормальное объяснение, а то, что вы говорите "все непонимание "как рукой сымает"", так это просто значит, что человеку не хочется с вами общаться больше и он идёт на другой форум.
Не знаю, как у других, но у меня, например, понимание, что такое "а в РЕКОРСЕТЕ??? а названия полей РЕКОРСЕТА???" как-то не возникло.
← →
Dennis I. Komarov © (2011-05-18 11:07) [7]
> Соня (18.05.11 10:41) [4]
Замени TADOTable, на TADODataSet. Послушай дядю "в голубых штанах", он дело говорит ;-) и плохого не посоветует.
> Хочу сделать поиск в ADOTable с помощью Locate.
А какие аргументы этого хочу? Т.е. мы получили от сервера большую кучу данных, возможно потратили на это огромное количество ресурсов, и после этого во всей этой куче еще и искать? Может сразу запросить то что нужно?
← →
sniknik © (2011-05-18 12:17) [8]> По-помоему непонимание снимает как раз таки нормальное объяснение
вам вполне таки нормально в прошлый раз объяснили что TADOTable использовать не стоит, и ???. не понимаю значит игнорирую? опять таки в прошлый раз вам сказали, что пока "не доросли" и понимание придет с опытом, а пока поверить, и просто чтобы такие "обьяснялки" не стали постоянными вместо решений собственно вопросов... иии ???
> как-то не возникло.
и не возникнет, пока ты игнорируешь ответы/советы, и "тупо как танк прешь напролом", вместо того чтобы уточнить непонятное.
> А какие аргументы этого хочу?
Locate нормальная операция, если применяется к отобранным данным, а не к таблице
и главное чтобы понимали, что есть отобранные данные, а что таблица, и не замещали отбор поиском и/или фильтрами. т.е. с целью найти запись, а не обрабатывать кучу посредством поиска. ну т.е. вот это самое -
> Т.е. мы получили от сервера большую кучу данных, ...
← →
Dennis I. Komarov © (2011-05-18 12:24) [9]
> Locate нормальная операция...
А я спорю? :) Но ведь в данном контексте используем TADOTable, а => тащим весь ненужный мусор.
← →
sniknik © (2011-05-18 12:32) [10]> А я спорю? :)
а и я не спорю, я дополнил. чтобы у некоторых не возникло "осцусцения" что осуждается именно операция, а не их образ действий.
это они хорошие, и явные советы не понимают, а вот если что сами напутают/не так поймут(осенит "своя идея") так потом не выдолбишь.
← →
Соня (2011-05-18 14:49) [11]Извиняюсь... Я написала, что использую ADOTable, тогда как я использовала ADODataSet... Просто раньше были ADOTable, а потом я их поменяла на ADODataSet... Вот в голове всё перепуталось.
← →
Соня (2011-05-18 14:50) [12]sniknik
А что есть в ваших словах РЕКОРДСЕТ?
← →
Ega23 © (2011-05-18 14:51) [13]
> А что есть в ваших словах РЕКОРДСЕТ?
RecordSet. Набор данных. То, что возвращается из БД на клиент после команды Select.
← →
Соня (2011-05-18 14:53) [14]А кто у нас дядя в голубых штанах? :-)
← →
Dennis I. Komarov © (2011-05-18 14:54) [15]
> Извиняюсь... Я написала, что использую ADOTable, тогда как
> я использовала ADODataSet... Просто раньше были ADOTable,
> а потом я их поменяла на ADODataSet... Вот в голове всё
> перепуталось.
Можно узнать как теперь беруться данные в этом ADODataSet?
← →
Соня (2011-05-18 14:58) [16]Ммм... В смысле, как выводятся в DBGrid?
Если так, то просто пишу SQL запрос в CommandText и получаю данные сразу из нескольких таблиц в один грид.
← →
Dennis I. Komarov © (2011-05-18 15:00) [17]
> то просто пишу SQL запрос в CommandText
Вот его озвучте, пожалуйста...
← →
Соня (2011-05-18 15:00) [18]А вообще интересно, делаем выборку из нескольких таблиц, скажем, Employee и Clients. В таблицах поля Surname, Name, Patronymic называются одинаково... А как их потом различать, скажем, для сортировки?
← →
Соня (2011-05-18 15:01) [19]select
Cassettes.Title, Clients.Surname, Clients.Name, Clients.Patronimyc,
Orders.DateOfTaking, Orders.DateReturn, Orders.Paid, Orders.Returned,
Employee.Surname, Employee.Name, Employee.Patronimyc,
Orders.Cassette, Orders.Client
from
Orders,
Cassettes,
Clients,
Employee
where
( Orders.Cassette = Cassettes.Id ) and
( Orders.Client = Clients.Id ) and
( Orders.Employee = Employee.Id )
← →
Dennis I. Komarov © (2011-05-18 15:05) [20]
> А как их потом различать, скажем, для сортировки?
AS
← →
Соня (2011-05-18 15:07) [21]Мда... Чувствую себя дурой.
← →
Anatoly Podgoretsky © (2011-05-18 15:09) [22]
> Соня (18.05.11 15:00) [18]
Алиасы
← →
sniknik © (2011-05-18 15:44) [23]
SELECT
o.DateOfTaking,o.DateReturn,o.Paid,o.Returned,o.Cassette,o.Client,
cs.Title,
cl.Surname AS clSurname,cl.Name AS clName,cl.Patronimyc AS clPatronimyc,
e.Surname AS eSurname,e.Name AS eName,e.Patronimyc AS ePatronimyc
FROM Orders AS o, Cassettes AS cs, Clients AS cl, Employee AS e
WHERE o.Cassette=cs.Id AND o.Client=cl.Id AND o.Employee=e.Id
← →
clickmaker © (2011-05-18 15:55) [24]> Мда... Чувствую себя дурой.
учи матчасть
← →
Anatoly Podgoretsky © (2011-05-18 15:56) [25]
> как их потом различать, скажем, для сортировки?
Сортировка применяется к набору, а не к отдельным таблицам.
← →
Соня (2011-05-18 16:02) [26]Я так сортирую:
with AllADOElements.OrdersTable do
case SortOrderByRG.ItemIndex of
0: Sort := "Title";
1: Sort := "Surname";
2: Sort := "empSurname";
end;
А запрос у меня теперь такой:
select
Cassettes.Title, Clients.Surname, Clients.Name, Clients.Patronimyc,
Orders.DateOfTaking, Orders.DateReturn, Orders.Paid, Orders.Returned,
Employee.Surname as empSurname, Employee.Name as empName,
Employee.Patronimyc as empPatronymic, Orders.Cassette, Orders.Client
from
Orders,
Cassettes,
Clients,
Employee
where
( Orders.Cassette = Cassettes.Id ) and
( Orders.Client = Clients.Id ) and
( Orders.Employee = Employee.Id )
← →
Dennis I. Komarov © (2011-05-18 16:11) [27]И какой смысл всего этого?
← →
Anatoly Podgoretsky © (2011-05-18 16:12) [28]> Соня (18.05.2011 16:02:26) [26]
Тьфу ты, я думал про набор данных, а не про компонент. Но не смертельно
0: Sort := "a.Title";
1: Sort := "b.Surname";
2: Sort := "c.empSurname";
← →
Соня (2011-05-18 16:16) [29]Dennis I. Komarov Что вы имеете ввиду? :-)
← →
Dennis I. Komarov © (2011-05-18 16:18) [30]Вот эта выборка она зачем? Для чего она пользователю?
← →
Соня (2011-05-18 16:24) [31]Для удобства просмотра БД. А вы что подумали?
← →
Dennis I. Komarov © (2011-05-18 16:34) [32]
> Для удобства просмотра БД. А вы что подумали?
Я не знаю контекста решаемой задачи... Что я должен был думать?
В большенстве, за редким исключением, пользователю не нужна вся выборка, кроме той одной нужной ему записи, поэтому таскать за всеми остальными (а еще и рисовать) кучу лишней ин-фы... Это я к тому, что 13 полей возращается...
← →
Соня (2011-05-18 16:40) [33]Нужно представить информацию о заказах на покупку видеокассет. Я решила, что будет логично представить кто купил кассету (клиент), кто продал кассету (продавец), ну и название самой кассеты. А раз информация о клиентах, кассетах и сотрудниках магазина хранится в разных таблицах, то и делаю запрос к нескольким таблицам... А поля Cassettes.Id и Clients.Id у меня на форме не видны.
← →
Dennis I. Komarov © (2011-05-18 16:56) [34]
> Соня (18.05.11 16:40) [33]
Повторюсь, я не знаю контекста... Если эта ин-фа необходима в виде реестра, то pourquoi pas?
← →
Плохиш © (2011-05-18 20:15) [35]
> Соня (18.05.11 16:40) [33]
А слабо, посмотреть список полей в dataset-те и какие имена они имеют, если уж лень алиасы для всех полей сделать, а не только для избранных?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.09.04;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.004 c