powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Компоненты ADO для 64-bit
22 сообщений из 47, страница 2 из 2
Компоненты ADO для 64-bit
    #39822355
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cptngrbTNS_ADMIN

эту переменную можно пропустить, если положить tnsnames.ora в подпапку \Network\Admin\.
Остается только PATH подправить


HOME_X,

1) создаем папку C:\Oracle Client
2) распаковаем туда Oracle Instant Client 32 bit (без подпапок, прямо в эту) ~~ 150Mb
3) добавляем C:\Oracle Client в переменную PATH
4) создем файл C:\Oracle Client\Network\Admin\tnsnames.ora , например с таким содержанием:
Код: ruby
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
# выделенное заменить на своё
TEST-DB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.30)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = TESTDB_SERVICE)
    )
  )
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39822411
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

32-битные приложения прекрасно работают на 64-битных . Да иначе и быть не могло бы, представьте только, если б было по-другому. Сама Дельфи, даже самая новая - это 32-битная программа, и прекрасно работает на 64-битной Windows.
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39822446
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

а в Registry в HKEY_LOCAL_MACHINE\Software\Wow6432Node\Oracle разве не нужно записывать ключ KEY_ORACLE_HOME со значениями
ORACLE_HOME = C:\Oracle Client
ORACLE_HOME_NAME = любое
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39822459
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, не нужно
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39822484
Фотография Victor Cookin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

Наверно это только для DAO надо, не для ADO
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39822606
cptngrb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Cookin, и для doa не надо
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39825866
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы и участие господа !

Кроик Семён - отдельное спасибо за детализацию и конкретику.

InstantClient - почти справился с задачей.

Сопутствующие проблемы
- на своем "сверх-тонком" клиенте не сумел даже поправить параметры окружения PATH
нет допуска (политика безопасности предприятия)

Решение
- задаю значение PATH для отдельной session (или bat-файлом или прямо в Delphi-exe)

Доп. вопрос , может кто уже сталкивался
По ходу операций возникла необходимость доустановить Instant Client ODBC

Насколько понимал из Help-ы, установка ODBC делает запись в системный реестр и отображает
Driver = {Oracle in Oracle_Client} в окне ODBC администратора

Нужно предположить что у допуски здесь ТОЖЕ прикрыты или это не факт ??
Кто-то ставил Instant Client ODBС ? Там ведь не только задать PATH............

Спасибо ...
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39826839
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён ,

Еще один вопрос

1) создаем папку C:\WORK\Oracle_Client
2) распаковаем туда Oracle Instant Client 32 bit (без подпапок, прямо в эту) ~~ 12.1...... версия
3) добавляем C:\WORK\Oracle_Client в переменную PATH
Выполнено !

4) создем файл C:\Oracle Client\Network\Admin\tnsnames.ora , например с таким содержанием:
Не делал - так как пытаюсь законнектится через компоненты ADODB
(полагал что потребности при такой связи нет)

Какая должна быть значение свойства ConnectionString объекта ADODB - ?
Можно полностью (ссылка на драйвер (Driver={Oracle in Oracle_Client} .....) не проходит - нет возможности
зарегистрировать драйвер)

Спасибо !
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39826867
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что советует connectionstrings ?
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39826976
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gator,

Угу - слепил уже - спасибо (без tnsnames.ora)

Код: pascal
1.
2.
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))
(CONNECT_DATA=(SERVICE_NAME=MyOracleSID))); User Id=myUsername;Password=myPassword;


Тут прикол в другом был - ADODB не всегда может разобрать запрос
Т.е. запрос выглядит ПРОСТО "select * ..............." - норма !

Если так
Код: sql
1.
with  AAAA as (select * from .......)   select * from AAAA

- увы надо заворачивать в "обертку"

Код: sql
1.
2.
3.
4.
5.
6.
7.
select B.*  
  from (
            with  AAAA as (select * 
                                    from .......
                                 )   
             select * from AAAA
         ) B


P.S. Ну синтаксис такой у Oracle есть ....
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39828589
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

Еще один момент проясните пожалуйста
Как при использовании Inst. Client Oracle правильно установить NLS_LANG
Результаты запроса, всю кирилицу "скорозябрило"

Напоминаю первичные вводные

- Базовая система WIN 10 64-bit
- Ins Client Oracle Oracle 12.2 32-bit
- Изменить системный реестр нет возможности (политика безопасности предприятия)
- Изменить параметры окружения нет возможности,только параметры локальной сессии.
(менял PATH - в bat-ке перед запуском основного Delp-го приложения)

Спасибо ...
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39828599
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю, здесь в другом дело. У меня проблемы были на немецком Windows + Oracle Instant Client с умлаутами немецкого же языка (ÜÖÄß), там проблема решилась не средствами Oracle.

Пробуйте в программе в каком-нибудь юните внизу в секции INITIALIZATION написать такое:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Uses Windows

//copied from JclWin32.pas
function MAKELCID(LangId, SortId: WORD): DWORD;
begin
  Result := (DWORD(SortId) shl 16) or DWORD(LangId);
end;


SetThreadLocale(MAKELCID(LANG_RUSSIAN, SORT_DEFAULT));
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39828600
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X..
Как при использовании Inst. Client Oracle правильно установить NLS_LANG
....
в bat-ке перед запуском основного Delp-го приложения)
...
И что, не получилось?
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39828631
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

ВЫ хотите сказать что NLS_LANG можно задать в переменной окружения OS ?

В Help-е некоторые ссылки на этот момент есть

Код: plsql
1.
2.
3.
4.
5.
6.
7.
Setting the NLS_LANG Environment Variable
NLS_LANG is an environment variable that specifies the locale behavior for Oracle software. This variable sets the language and territory used by the client application and the database user session. It also declares the character set of the client, which is the character set of data entered or displayed by an Oracle client program, such as SQL*Plus.

Note:

The character set of the data displayed is determined by the environment of the operating system, such as keyboard driver and fonts in use. The NLS_LANG character set should match the operating system.
Refer to the "Setting Up a Globalization Support Environment" section in Oracle Database Globalization Support Guide for information about Globalization Support.



Но всегда использовал систем. реестр и "alter session ......"
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39828646
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
самый простой и безгеморройный вариант - использовать

alter session set NLS_LANGUAGE = 'RUSSIAN'

сразу после коннекта к базе
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39830972
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня господа !

Резюмирую тему

1.Откопировали 32 - bit InstantClient c офиц. сайта
2.Разархивировали и скопировали содержимое в любую папку
3.Переменную окружения Path (переменную ПК или отдельной сессии в ВАТ - файле)
изменили, необходимо добавить ссылку на этот каталог
4.Переменную окружения NLS_LANG - изменили на нужный Вам стандарт (в том же BAT-файле)
5.Tnsnames.ora - не нужен, строка коннекта имеет вид
Provider=MSDAORA.1;User ID={UID};Password={PWD};Persist Security Info=True;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST={Имя ПК})(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME={Имя сервера})))

Bat для DOS
Код: pascal
1.
2.
3.
4.
set Hard=%CD:~0,2%
set oPath=%Hard%\WORK\Oracle_Client;
set Path=%oPath%%Path%
set NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251



Запуск EXE-файла делаем непосредственно из BAT-ка

Всем спасибо - тему можно закрыть
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39830979
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XBat для DOS
Код: pascal
1.
2.
3.
4.
set Hard=%CD:~0,2%
set oPath=%Hard%\WORK\Oracle_Client;
set Path=%oPath%%Path%
set NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251



Почему бы не выставлять эти переменные окружения из INITIALIZATION приложения?
Возможно тогда и батник будет не нужен
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39830981
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
их значение задавать в INI-файле
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39830985
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

Имеете в виду непосредственно из EXE

SetEnvironmentVariable(PChar(Name), PChar(AValue)) ?
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39830989
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да,через SetEnvironmentVariable
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39830993
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
например, из секции INITIALIZATION главного юнита
...
Рейтинг: 0 / 0
Компоненты ADO для 64-bit
    #39830996
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён,

Принято - подумаю - спасибо
...
Рейтинг: 0 / 0
22 сообщений из 47, страница 2 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Компоненты ADO для 64-bit
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]