Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Direct Oracle Access. [D5, Oracle, ]


Andrey007 ©   (2002-01-15 09:51:00) 

(В продолжении темы http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1009611061&n=1)

Поставил я себе DOA, взял SQL запрос (TOracleQuery), а у него нету Locate. Неужели всё придётся делать через параметры (Variables)? Ведь тогда получается, что для каждого поиска нужно писать свой SQL-запрос, что неудобно. Или может я не нашёл чего? Или версия DOA старая?


EAlexander   (2002-01-16 18:45:00) [1]

OracleQuery - однонаправленный курсор, у него нет понятия о TField, методов FieldByName и т.п.
OracleDataSet - это НД, наследник TDataSet, у него есть все (или практически все - зависит от особенностей Ora), что и у стандартного BDE TQuery.

P.S. вообще есть help, там все написано.


Andrey007   (2002-01-16 17:09:00) [2]

А чем отличается TOracleQuery от TOracleDataSet кроме наличия Locate у TOracleDataSet? Где-нибудь в справке по DOA-компонентам есть описание этих отличий?


EAlexander   (2002-01-16 11:44:00) [3]

НД - набор данных.
В клиент/сервере аналогов TTable нет, поскольку там все через запросы - получается SELECT * FROM TABLE1 - очень похоже на TTABLE :)


Andrey007   (2002-01-16 11:23:00) [4]

А-а, понятно теперь всё. Оказывается TOracleDataSet тоже сделан для работы с запросами. Но тогда непонятно какая компонента является аналогом TTable?


EternalWonderer   (2002-01-16 10:36:00) [5]

И у меня TOracleDataSet.Locate работает, и даже очень шустро
DOA 342, D6(Update1).


Andrey007   (2002-01-16 09:14:00) [6]

EAlexander:
>А OracleQuery работает пошустрей, если у БД надо исполнить запрос, короче - когда НД не нужен.

А что такое НД?

Кстати, у меня DOA 3.4.3 для Delphi 5.


Юрий Жуков   (2002-01-16 08:58:00) [7]

У меня TOracleDataSet.Locate точно работает.
DOA 3.4.5 + D6(Update1)


MaXimka   (2002-01-15 22:41:00) [8]

Вот сейчас поковырялся с OracleDataSet - ни фига не работает ни Locate, ни этот широко разрекламированный SearchRecord. Например, пытался найти строку, имеющую в определённом поле заданное число - в результате всегда находится 0, даже если таких строк вообще нет. Вот так, значица. DOA у меня 3.4.5.


EAlexander   (2002-01-15 18:37:00) [9]

OracleDataSet - наследник TDataSet - и следовательно, все, что там есть (Locate и т.п.) - работает, должно, по крайней мере.
А OracleQuery работает пошустрей, если у БД надо исполнить запрос, короче - когда НД не нужен.


Внук   (2002-01-15 17:55:00) [10]

Кстати, если пользоваться TOracleDataSet, то лучше употреблять метод SearchRecord, если версия DOA не очень старая. Будет работать быстрее (по крайней мере, так пишут разработчики).


Внук   (2002-01-15 17:41:00) [11]

Ну и что? TOracleDataSet это позволяет.


EAlexander   (2002-01-15 17:40:00) [12]

А какая разница?
просто OracleQuery не кеширует данные как это делает OracleDataSet, у Query только одно текущее значение и читается как FieldAsXXXX, поэтому там Locate быть не может.


Andrey007   (2002-01-15 17:31:00) [13]

Дело не в объёмах, а в том, что запрос по нескольким таблицам.


EAlexander   (2002-01-15 10:47:00) [14]

OracleQuery - однонаправленный курсор - какой там может быть Locate ?:)
Тем более разница по скорости между OracleDataSet и OracleQuery при небольших объемах данных - не более 1000 строк - практически нет.


Andrey007   (2002-01-15 10:43:00) [15]

Но мне хотелось бы иметь Locate для Query.


Юрий Жуков   (2002-01-15 10:41:00) [16]

В DOA Есть компонент TORACLEDataSet - в нем и будет твой locate


Наверх

Титульная страница Поиск, карта сайта Написать письмо