Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2011, 17:34   #1
Nikolay88
Пользователь
 
Регистрация: 16.04.2009
Сообщений: 15
Сообщение Начало работы с DOA и OracleXE в Делфи7

Пишу курсовую. Простейшие манипуляции с БД из приложения и т.д.
Скачал Oracle Express 10g. Создал в БД одну таблицу для теста.
Для доступа использую Direct oracle access, скачал с оф. сайта. Кинул на форму Oraclesession, oracledataset, oraclelogon. OracleDataSet подключил к Oraclesession.

Подключение к Базе проходит успешно. На форму добавляю DBGrid, но подключить его не чему. Решил что это из-за того, что OracleDataSet неактивен. Параметр Active компонента OracleDataSet не включается(в положение true), пишет, что ошибка 00911 "Неверный символ". Что к чему, не могу понять. Как понял компонент OracleDataset по своему параметру SQL делает выборку из БД и переносит его например в DBGrid.

Может это из-за того, что используется Express версия Oracle? Изучение начал недавно, в данный момент читаю справку по DOA.

Последний раз редактировалось Nikolay88; 14.04.2011 в 17:36.
Nikolay88 вне форума Ответить с цитированием
Старый 14.04.2011, 17:51   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
На форму добавляю DBGrid, но подключить его не чему.
Рекомендую либо компоненты OCI либо через обычное ADO. Лично у меня через ADO все превосходно работает
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.04.2011, 22:42   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

используем DOA (в 3-х звенке, кстати).
Нареканий никаких. всё устраивает.

если не оставите мысль их использовать, то обязательно помогу.
а пока пишу "вслепую" - посмотреть практически негде.

Если Вы хотите увидеть в гриде результаты выборки Вам нужно
кинуть на форму
TOracleSession
(настроить
свойства:
LogonDatabase
LogonUsername
LogonPassword
)
дальше.
кинуть TOracleDataSet
настроить .Session := OracleSession1;
заполнить .SQL

дальше кидаете на форму обычный TDataSource
в поле DataSet указываете ваш OracleDataSet1

дальше кидайте DBGrid и у него в свойсте DataSource указываете ваш DataSource1

потом просто (на любом подходящем событии - например, на FormCreate или по кнопке):
Код:
    OracleSession1.LogOn;
    OracleDataSet.Open;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.07.2011, 13:30   #4
Rilent
Новичок
Джуниор
 
Регистрация: 25.07.2011
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
...
дальше.
кинуть TOracleDataSet
настроить .Session := OracleSession1;
заполнить .SQL

потом просто (на любом подходящем событии - например, на FormCreate или по кнопке):
Код:
    OracleSession1.LogOn;
    OracleDataSet.Open;
Есть небольшая проблемка, SQL заполнен примерно так

Код:
select * from %table_name% for update
но, к сожалению, данные недоступны для редактирования. Подскажите пожалуйста, как сделать доступность данных для корректировки?
Rilent вне форума Ответить с цитированием
Старый 14.05.2013, 09:45   #5
Undel
Новичок
Джуниор
 
Регистрация: 13.05.2013
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
используем DOA (в 3-х звенке, кстати).
Нареканий никаких. всё устраивает.

если не оставите мысль их использовать, то обязательно помогу.
а пока пишу "вслепую" - посмотреть практически негде.

Если Вы хотите увидеть в гриде результаты выборки Вам нужно
кинуть на форму
TOracleSession
(настроить
свойства:
LogonDatabase
LogonUsername
LogonPassword
)
дальше.
кинуть TOracleDataSet
настроить .Session := OracleSession1;
заполнить .SQL

дальше кидаете на форму обычный TDataSource
в поле DataSet указываете ваш OracleDataSet1

дальше кидайте DBGrid и у него в свойсте DataSource указываете ваш DataSource1

потом просто (на любом подходящем событии - например, на FormCreate или по кнопке):
Код:
    OracleSession1.LogOn;
    OracleDataSet.Open;
Здравствуйте!
не могли Вы мне помочь?
дело вот в чём...
В Delphi 7 c помощью компонентов DOA хочу подконектиться к Oracle и увидеть в DBGrid таблицу, как результат простого запроса: Select * from table
Вроде всё просто (делаю по Вашей инструкции)
1) кинуть на DataModule TOracleSession
(настроить свойства:
LogonDatabase
LogonUsername
LogonPassword)
свойства настроены, по двойному щелчку по TOracleSession открывается DataModule.OracleSession Explorer, где отображается содержимое бд.

2) кинуть на DataModule TOracleDataSet
настроить Session := OracleSession1;
заполнить SQL
sql заполнено: select * from Table

3)кинуть на DataModule TDataSource
в поле DataSet указываете ваш OracleDataSet1

4) дальше кинуть на обычную форму DBGrid и у него в свойсте DataSource указать нужный DataSource1

Проблема в следующем:
1) в поле DataSource у DBGrid никаких значений не выплывает.
2) у OracleDataSet1 свойство Active=false, при попытке поставить true система подвисает и через некторое время выдаёт ошбику: Out of Memory

Могли бы Вы подсказать, в чём можт быть дело?
Заранее спасибо!
Undel вне форума Ответить с цитированием
Старый 14.05.2013, 11:39   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Ого, какой некропост всплыл...

к сожалению, могу только угадывать/предполагать.

Цитата:
Проблема в следующем:
1) в поле DataSource у DBGrid никаких значений не выплывает.
1-е. DBGrid находится на той же форме, что и DataSource1 ?! Нет никаких "хитрых" компонентов, фреймов, панелей, дата модулей и т.д. и т.п.
Проверьте, что у DBGrid не заполнено свойство DataSet (если там что-то есть - СОТРИТЕ!)

Дело в том, что свойство DataSource у DBGrid никак не зависит от Оракла и его компонентов! Т.е. можно вообще убрать и TOracleDataSet и OracleSession1
на заполнение данного поля это вообще никак не должно влиять.


Цитата:
2) у OracleDataSet1 свойство Active=false, при попытке поставить true система подвисает и через некторое время выдаёт ошбику: Out of Memory
А Вы зайдите через любой менеджер БД (например, PL/SQL Developer), посмотрите, что там в этой таблице творится. Может там 1500 полей и десять миллионов записей. Вот датасет и не может в себя все эти гигабайты "всосать"!!
Укажите в select нужные поля + добавьте Where условие отбора данных!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.10.2013, 13:40   #7
Tolganay
Новичок
Джуниор
 
Регистрация: 25.10.2013
Сообщений: 1
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
используем DOA (в 3-х звенке, кстати).
Нареканий никаких. всё устраивает.

если не оставите мысль их использовать, то обязательно помогу.
а пока пишу "вслепую" - посмотреть практически негде.

Если Вы хотите увидеть в гриде результаты выборки Вам нужно
кинуть на форму
TOracleSession
(настроить
свойства:
LogonDatabase
LogonUsername
LogonPassword
)
дальше.
кинуть TOracleDataSet
настроить .Session := OracleSession1;
заполнить .SQL

дальше кидаете на форму обычный TDataSource
в поле DataSet указываете ваш OracleDataSet1

дальше кидайте DBGrid и у него в свойсте DataSource указываете ваш DataSource1

потом просто (на любом подходящем событии - например, на FormCreate или по кнопке):
Код:
    OracleSession1.LogOn;
    OracleDataSet.Open;
Установила себе DOA. Делаю коннект к базе через TOracleSession, показывает таблицы базы, но когда в свойстве указываю Connected - True выдает ошибку "ORA - 12203: TNS: Connect to destination".
Хотя через developer Pl/SQL коннект есть. Так же при двойном щелчке TOracleSession открывается Form1.OracleSession1 Explorer и показывает таблицы коннекченной базы.
Tolganay вне форума Ответить с цитированием
Старый 25.10.2013, 14:31   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

я, конечно, не специалист по Oracle, но вряд ли эта проблема DOA!

Судя по всему, проблема с Oracle:

отсюда
Цитата:
Oracle docs note this about ORA-12203

ORA-12203: TNS:unable to connect to destination

Cause: Invalid address specified or destination is not listening. This error can also occur because of underlying network or network transport problems.

Action: Verify that the net service name you entered was correct. Verify that the ADDRESS portion of the connect descriptor which corresponds to the net service name is correct. Ensure that the destination process (for example the listener) is running at the remote node.
вообще, погуглите по ORA-12203, почитайте...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.10.2013, 15:27   #9
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 516
По умолчанию

Цитата:
Сообщение от Rilent Посмотреть сообщение
Код:
select * from %table_name% for update
но, к сожалению, данные недоступны для редактирования. Подскажите пожалуйста, как сделать доступность данных для корректировки?
надо добавить событие у датасета

Код:
procedure TForm1.OracleDataSet1ApplyRecord(Sender: TOracleDataSet; Action: Char;
  var Applied: Boolean; var NewRowId: string);
begin
  Applied := true;
end;
и возможно изменить запрос на
Код:
select rowid, t.* from %table_name% t
точно не помню, точно не помню, прокатит ли конструкция с for update
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 25.10.2013, 15:47   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Тоха, не смущает, что то сообщение, на которое Вы отвечаете, датируется 25.07.2011, 13:30 ?!
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AVR, начало работы wanes101 Микроконтроллеры, робототехника, схемотехника, 3D принтеры 6 09.01.2011 16:34
Начало работы Firebird + Delphi + IBExpert Uuuux БД в Delphi 4 20.07.2010 11:32
Начало работы в Visual Studoi 2008 drNabla Visual C++ 2 11.07.2010 11:48
начало работы... zetrix PHP 1 29.10.2006 20:11