Перевод документации:

Что такое ORACLE Database?

Это данные которые будут обрабатываться как единое целое. Database состоит из файлов операционной системы. Физически существуют database files и redo log files. Логически database files содержат словари, таблицы пользователей и redo log файлы. Дополнительно database требует одну или более копий control file.

Что такое ORACLE Instance?

ORACLE Instance обеспечивает программные механизмы доступа и управления database. Instance может быть запущен независимо от любой database (без монтирования или открытия любой database). Один instance может открыть только одну database. В то время как одна database может быть открыта несколькими Instance.

Instance состоит из:

SGA (System Global Area), которая обеспечивает коммуникацию между процессами;
до пяти (в последних версиях больше) бэкграундовых процессов.

От себя добавлю - database включает в себя tablespace, tablespace включает в себя segments (в одном файле данных может быть один или несколько сегментов, сегменты не могут быть разделены на несколько файлов). segments включают в себя extents.

Автор: de1phi | в 10:22 | Рубрики: Базы данных

Для этого можно воспользоваться компонентами от AllRoundAutomations Direct Oracle Access. Если кому надо могу поделиться. При помощи этих компонент можно не только производить простые запросы/вставки, но и выполнять DDL-скрипты, и иметь доступ к объектам Oracle 8, примет смотри ниже…

var
Address: TOracleObject;
begin
Query.SQL.Text := ’select Name, Address from Persons’;
Query.Execute;
while not Query.Eof do
begin
Address := Query.ObjField(’Address’);
if not Address.IsNull then
ShowMessage(Query.Field(’Name’) + ‘ lives in ‘ + Address.GetAttr(’City’));
Query.Next;
end;
end;

Погода выполнила недопустимую операцию и завалила Африку снегом…

Ниже приведен пример, как это сделать при помощи Direct Oracle Access, надеюсь этот кусок кода несложно запустить в отдельном процессе, а в другом можно запустить перемесчатель прогресс бара. Есть готовая компонента, могу поделиться.

//на создании потока вставим то, что будет выбирать необходимую информацию

Self.fods.SQL.Text:=’SELECT SOFAR FROM V$SESSION_LONGOPS WHERE CONTEXT=:FK_ID’;
Self.fods.DeclareVariable(’FK_ID’,otInteger);
Self.fods.SetVariable(’FK_ID’,ID);
Читать полностью…

Хочу поделиться идеей, которая, может и приходила уже кому-нибудь в голову, но я пока не встречал таких решений… Для тех, кто проектирует базы данных для Oracle в ERwin. Предлагаю решение для загрузки русских наименований колонок из ERwin в DisplayLabels датасета.

Компонент, конечно, сырой, но я пользуюсь, и очень поиогает. Ненавижу вбивать один текст по 10 раз.
Что нужно сделать:
1. Создать в ErWin скрипт на уровне модели следующего содержания:
%ForEachTable()
{
%ForEachColumn()
{
COMMENT ON COLUMN %TableName.%ColName IS ‘%AttName’;
}}
2. Сгенерировать базу.
3. В дата-модуле или на форме разместить компонент TOraCommentsToFL.
4.Установить его свойство OraDataSet.
5. Установить свойство LoadFieldLabels в True, после чего названия полей будут загружены из базы Oracle.
6. После этого компонент можно удалить с формы!
Примечание:
Требуются установленные компоненты ODAC.

Автор: de1phi | в 10:22 | Рубрики: Базы данных

Автор: Scott Gammans

Окошко: “Программа Microsoft не совершила никакой ошибки, но по привычке будет закрыта”.

…я получил сегодня Delphi, установил и перекомпилил тестовое приложение.

При подключении к источнику данных ODBC, данная последовательность вызывает утечку памяти без возникновения GPF:

Prepare->ExecSQL->ExecSQL->ExecSQL->…
C установленной Delphi это еще требует подготовку (prepare) каждого запроса:

Prepare->ExecSQL->Unprepare->Prepare->ExecSQL->Unprepare->…