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

Вниз

Direct Oracle Access.   Найти похожие ветки 

 
Andrey007   (2002-01-15 09:51) [0]

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

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


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

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


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

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


 
EAlexander ©   (2002-01-15 10:47) [3]

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


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

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


 
EAlexander ©   (2002-01-15 17:40) [5]

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


 
Внук ©   (2002-01-15 17:41) [6]

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


 
Внук ©   (2002-01-15 17:55) [7]

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


 
EAlexander ©   (2002-01-15 18:37) [8]

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


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

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


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

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


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

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

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

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


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

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


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

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


 
EAlexander ©   (2002-01-16 11:44) [14]

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


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

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2002.02.11;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.009 c
4-32379
Olgerd
2001-12-12 18:43
2002.02.11
PChar


3-32166
ГС ТОФ
2002-01-16 14:38
2002.02.11
Пропала форма в проекте


3-32138
dymka
2002-01-15 08:50
2002.02.11
TQuery без TDatabase


1-32195
Lord BDV
2002-01-28 19:58
2002.02.11
Смена неменяемых цветов


7-32360
Станислав
2001-08-21 11:02
2002.02.11
Как узнать какая программа использует DLL