Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
1-32211
AlexDov
2002-01-11 18:27
2002.02.11
Утечка памяти. Memory Leak


7-32351
Иван Шихалев
2001-11-02 20:57
2002.02.11
Перезагрузка из DOS


1-32270
Dmitriy_R
2002-01-28 14:11
2002.02.11
Очистка памяти от уже ненужного мусора


1-32296
Anas
2002-01-26 07:52
2002.02.11
Про Ord и Chr


14-32320
Kirill
2001-12-19 12:26
2002.02.11
Внимание! Мастера, Администраторы сайта (Модератор тоже)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский