Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.09.04;
Скачать: CL | DM;

Вниз

Поиск в 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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.008 c
3-1263808915
fford
2010-01-18 13:01
2011.09.04
не работает Append


3-1263635532
victor
2010-01-16 12:52
2011.09.04
обновление данных в ADODataSet


2-1305638430
ok
2011-05-17 17:20
2011.09.04
Узнать какой radiobutton нажат


15-1303279486
Inovet
2011-04-20 10:04
2011.09.04
Фильм "Generation П" кто-нибудь уже видел?


2-1305730411
vasja123
2011-05-18 18:53
2011.09.04
лаги с paramcount