![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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