Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001

Скачивание начинается... Если скачивание не началось автоматически, пожалуйста нажмите на эту ссылку.
Жалоба
Напишите нам, и мы в срочном порядке примем меры.
Описание книги "Советы по Delphi. Версия 1.4.3 от 1.1.2001"
Описание и краткое содержание "Советы по Delphi. Версия 1.4.3 от 1.1.2001" читать бесплатно онлайн.
…начиная с 1001. Смотрите другие файлы…
Oracle
Связь Oracle с Win95
Delphi 2
Оптимизация связи Oracle с Windows 95
Предварительные условия:
• Windows 95
• Установленное клиентское программное обеспечение для доступа к Oracle & программа для соединения с Oracle Server через TCP/IP.
• (Опционально) Программное обеспечение Delphi 2.0 C/S для тестирования результатов.
Цель документа:
помочь увеличить скорость соединения Oracle под Windows 95. Под WinNT такая проблема не стоит, следовательно, данный документ рассматривает только работу с Windows 95. Ниже вы видите разницу в скорости выполнения запроса, выполненного до модификации, и после:
До : Win95 = 10-15 секунд. WinNT = 2-3 секунд.
После : Win95 = 3-4 секунд. (Большое улучшение)
Проблема: Windows 95 в сущности ищет адреса IPC в нескольких сетевых узлах ДО получения соединения с Oracle DNS, WinNT же поступает по другому.
Решение: Измените файл Oracle SQLNET.ORA для выключения вышеуказанной характеристики Windows 95.
Решение шаг-за-шагом:
1. Откройте в Notepad или Write файл SQLNET.ORA. (Данный файл расположен в каталоге <ORA_HOME>\network\admin. Проигнорируйте любые другие разновидности этого файла)
Данный файл должен выглядеть примерно следующим образом:
################
# Filename......: sqlnet.ora
# Node..........: local.world
# Date..........: 24-MAY-94 13:23:20
################
TRACE_LEVEL_CLIENT = OFF
sqlnet.expire_time = 15
names.default_domain = borland.world
name.default_zone = borland.world
Добавьте следующий параметр в файл SQLNET.ORA:
AUTOMATIC_IPC = OFF
После изменений файл должен выглядеть примерно так:
################
# Filename......: sqlnet.ora
# Node..........: local.world
# Date..........: 24-MAY-94 13:23:20
################
AUTOMATIC_IPC = OFF
TRACE_LEVEL_CLIENT = OFF
sqlnet.expire_time = 15
names.default_domain = borland.world
name.default_zone = borland.world
Сохраните измененный файл SQLNET.ORA и ура! В дальнейшем при инициализации соединения с Oracle время соединения вместо 15 секунд составит всего лишь 3 секунды. Скорость работы Delphi существенно увеличится.
Возникла необходимость в обработке исключительных ситуаций в PL/SQL процедуре (Oracle7 WG Server Release 7.3.2.2.0). Почему у меня не получается?
Nomadic отвечает:
Объявить выборку SELECT * FROM CUSTOM.CAMAIN20TEMP WHERE CC_07_01=curCC_07_01 AND CC_07_02=curCC_07_02 AND CC_07_03=curCC_07_03 курсором, а потом примерно так:
loop
fetch_cursor;
выход когда фетчить больше нечего;
begin
INSERT INTO CUSTOM.CAMAIN20 чего нафетчили;
EXCEPTION
WHEN others THEN
BEGIN
DBMS_OUTPUT.PUT_LINE('ВВОД ДУБЛЯ В CUSTOM.CAMAIN20');
END
end
end loop;
Поясните, чем в Oracle являются понятия Instance, Database etc.?
Nomadic отвечает:
Перевод документации:
Что такое 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.
Как заставить Oracle анализировать все таблицы базы данных?
Nomadic отвечает:
Конечно, можно использовать DBMS_SQL, DBMS_JOB…
А можно и так:
#!/bin/sh
#
# Analyze all tables
#
SQLFILE=/tmp/analyze.sql LOGFILE=/tmp/analyze.log
echo @connect dbo/passwd@> $SQLFILE
$ORACLE_HOME/bin/svrmgrl <> $SQLFILE
connect dbo/passwd
SELECT 'TABLE', TABLE_NAME FROM all_tables WHERE owner = 'DBO';
EOF
echo exit>> $SQLFILE
cat $SQLFILE> $LOGFILE
cat $SQLFILE | $ORACLE_HOME/bin/svrmgrl>> $LOGFILE
cat $LOGFILE | /usr/bin/mailx –s 'Analyze tables' [email protected]
rm $SQLFILE rm $LOGFILE
В режиме отладки приложения не разрешается доступ (открытие) базы данных. Как лечить?
Nomadic отвечает:
Необходимо отключить (деинсталлировать через Oracle Installer) Trace Service на клиенте – совет от ORACLE.
Глюк имеет место быть только под Windows NT 4.xx.
Подскажите, как на Oracle 7.3.2.3 (Solaris x86) поменять compatible на 7.3.2.3 (c 7.1.0.0)?
Nomadic отвечает:
Ставить в initmybase.ora
compatible = "7.3.2.3"
и после старта с новым параметром сделать
ALTER DATABASE RESET COMPABILITY;
И рестартовать базу.
Как настроить Personal Oracle с русским языком на корректную работу с числами и BDE?
Nomadic отвечает:
прописать в \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE параметр:
NLS_NUMERIC_CHARACTERS = '.,'
или
после соединения с ORACLE выполнить
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,'
Как в Oracle создать sequence с некоторого номера?
Одной строкой
Nomadic отвечает:
create sequence minvalue 10;
Как решать некоторые вопросы при подключении к Oracle?
Nomadic отвечает:
DD> 1. Все поля (TField), определенные в формах, имеющие типы TDateField,
DD> TSmallIntField – при открытии таблицы ругаются: Field «…» is not of
DD> expected type. Посмотрел – при переопределении их под Oracle'ом они
Чтобы «увидеть» integer-поля нужно в настройке Alias'а Oracle в BDE установить Enable Integers→True (и напрочь будет потерян Locate по этим якобы int/smallint полям). С датами, возможно, тоже надо разбираться через настройки Win & Oracle. У меня в Win дата формата «дд.мм.гггг», в Oracle NLS_LANG→AMERICAN_AMERICA.CL8MSWIN1251 и с датами все гут.
DD> 2. Используя в SQL
DD> строки типа 'SELECT XX FROM YY WHERE XX="QQQ"' мы поступали
DD> неправильно,
DD> т.к. двойные кавычки в Oracle обрабатываются не так, как в Btrieve.
Oracle в данном случае не при чем. Это глюк BDE. Лечилось просто – вместо обрамления двойными кавычками строкового значения, нужно обрамлять его с помощью #39, примерно так
MySQLString := 'SELECT XX FROM YY WHERE XX='+#39+'QQQ'+#39;
Belsky Roman
(2:450/94.75)
SS> У кого-нибудь есть опыт по настройке BDE? Откликнитесь плиз! При
SS> попытке соединиться с базой вылезает ошибка: Vendor failed init!
SS> Delphi запускаю под 95. Hа всякий случай пути к \BDE и ORAWIN\BIN я
SS> проставил! orant71.dll (родной или переименнованый ora72win.dll)
SS> закидывал куда угодно, но… все равно вылетает ошибка BDE Error
SS> 15879 Vendor failed init :-(
Клиент у тебя NT, как я понял?
• ora7x.dll – 32bit клиент для win95
• orant7x.dll – 32bit клиент для NT
• ora7xwin.dll – 16bit клиент для win
т.е. ora7xwin в Delphi3 вообще ставить бесполезно (16bit для 32bit appl). ora*71.dll у меня изначально к ORACLE 7.2 не коннектился – они там как-то резко сменили OCI. Правда потом ora72win.dll с Personal Oracle 7.3 работал, но все равно лучше, наверное, чтобы номер версии dll был не ниже версии сервера.
А вообще я 32bit дельфях в Vendor Init давно прописываю OCIW32.dll – он всегда для последней версии сервера с которым ты работаешь.
Это IMHO. Hо у меня Delphi3 и Delphi1 коннектятся как с Oracle 7.1 на Unix'е, так и с Personal Oracle 7.3
WindowsNT 4.0 + Delphi 2.01 C/S + Oracle Client 7.3 + Oracle Server 7.3. После логина в базу данных возникает `EExternalError 0xC0000008`. Что делать?
Nomadic коротко отвечает:
A: (IA, SK): Снести Oracle Trace Collection Services.
Псевдонимы
Получение пути псевдонима и таблицы I
Delphi 1
Есть три способа сделать это… №1 годится только для постоянных псевдонимов BDE. №2 работает с BDE и локальными псевдонимами, и No3 работает с BDE и локальными псевдонимами, используя "тяжелый" путь, через вызовы DBI.
function GetDBPath1(AliasName: string): TFileName;
var ParamList: TStringList;
begin
ParamList := TStringList.Create;
with Session do try
GetAliasParams(AliasName,ParamList);
Result := UpperCase(ParamList.Values['PATH'])+'\';
finally
Paramlist.Free;
end;
end;
function GetDBPath2(AliasName: string): TFileName;
var
ParamList: TStringList;
i: integer;
Подписывайтесь на наши страницы в социальных сетях.
Будьте в курсе последних книжных новинок, комментируйте, обсуждайте. Мы ждём Вас!
Похожие книги на "Советы по Delphi. Версия 1.4.3 от 1.1.2001"
Книги похожие на "Советы по Delphi. Версия 1.4.3 от 1.1.2001" читать онлайн или скачать бесплатно полные версии.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Отзывы о "Валентин Озеров - Советы по Delphi. Версия 1.4.3 от 1.1.2001"
Отзывы читателей о книге "Советы по Delphi. Версия 1.4.3 от 1.1.2001", комментарии и мнения людей о произведении.