Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.06 c
2-1305269551
ixen
2011-05-13 10:52
2011.09.04
DBGridEh и отображение содержимого BLOB поля


1-1265789474
bilov
2010-02-10 11:11
2011.09.04
Приложение к среде Delphi - закладки


2-1305724542
Соня
2011-05-18 17:15
2011.09.04
Insert into БД SQL Server с помощью ADOQuery.SQL


1-1265458376
LightGreen
2010-02-06 15:12
2011.09.04
Субклассинг контрола


4-1250283837
Alexei
2009-08-15 01:03
2011.09.04
Как определить момент манипуляции устройством ввода?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский