powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
12 сообщений из 12, страница 1 из 1
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32278504
sailor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код в PL/SQL:
Код: plaintext
1.
2.
3.
4.
5.
create sequence d_s;
create trigger d_t before insert on d_tab for each row
begin
  select d_s.nextval into :new.tab_id from dual;
end;


Так вот.. нужно вытащить в дельфи значение :new.tab_id (присвоить его дельфёвой переменной). Как это сделать? Был бы очень благодарен за помощь.

P.S. Использую связку Oracle9i + DOA + Delphi5
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32278530
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гм. А указанный код на PL/SQL вызывается из Delphi? Тогда никак нельзя вытащить, потому что указанный код не запускает триггер, а только компилирует его.
Если это просто пример создания триггера, а вопрос в том, как после вставки строки получить значение поля tab_id, то:
1) если используется TOracleDataSet и обычная схема Insert/Post, то - необходимо у TOracleDataSet (пусть переменная называется dsMain) установить свойство RefreshOptions=[roAfterInsert], тогда после Post в поле tab_id будет сгенерированное значение, и его можно присвоить переменной так: v:=dsMain['tab_Id']
2) если используется TOracleQuery и прямой код:
insert into d_tab, тогда необходимо TOracleQuery (пусть будет oqMain) переделать следующим образом:
Код: plaintext
1.
2.
3.
 begin
   insert into d_tab (поля) values (значения) returning tab_id into :tab_id;
 end; 
определить у oqMain переменную tab_id и после
Код: plaintext
oqMain.Execute;
вызвать:
Код: plaintext
v:=oqMain.GetVariable('tab_id');

Пишу по имеющейся версии DOA, у вас может быть и не так...
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32278549
sailor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m_kus, спасибо за объёмный и грамотный (на мой взгляд) ответ. И очень быстрый... Сейчас будем пробовать.
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32278654
sailor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос: как описать переменную tab_id?

Пока не работает. Обработчик ошибок говорит: "error 01008: not all variables bound" (или что-то вроде этого).
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32278981
Виктор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А самому лень посмотреть в хелпе ?
И что значит или что-то вроде этого ?
Приведи полный текст того, что ты написал в запросе.
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32279016
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У тебя помощь есть по DOA (это можно проверить, встав в Delphi курсором на слово GetVariable и нажав Ctrl-F1)? Я конечно, добрый, с удовольствием могу подсказать новичку, как всё должно работать, но я не могу собой заменять документацию. Переменную можно определить на этапе разработки или во время работы программы с помощью DeclareVariable('tab_Id',otString). Больше не буду рассказывать то, что есть в хелпе.
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32279189
sailor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо:) Про существование хелпа знаю.
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32279219
sailor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 m_kus:
Да, я новичок:).
Проблема в том, что у меня в DOA (может версия такая.. я использую Direct Oracle Access 3.4.6.1) в скрипте (TOracleScript) нет поддержки DeclareVariable. А в TOracleQuery есть, но я не могу в TOracleQuery сделать insert (в TOracleQuery у меня только запросы типа select делаются). В общем, всё не так просто оказалось. Ищу альтернативные методы решения проблемы.


Какая у тебя версия DOA, что она TOracleQuery "понимает" штуки вроде
Код: plaintext
insert into d_tab (поля) values (значения) returning tab_id into :tab_id;

?

Если вопросы очень глупые и всё есть в документации - просьба не отвечать.
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32279316
Александр Б
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй

begin
insert into d_tab (поля) values (значения) returning tab_id into :tab_id;
end;
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32279500
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я же писал через begin/end. Когда пишешь begin - там уже синтаксис PL/SQL, там можно returning писать.
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32279902
sailor1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем (особенно доброму альтруисту m_kus)... Разобрались кое как. Какие же мы ещё ламеры. Ну так и не мудрено.. С ораклом и дельфи работаем менее полугода. Всё ещё впереди.
...
Рейтинг: 0 / 0
Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
    #32280136
Виктор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sailor1, ну я же тебе говорил - приведи полный текст того, что написал.
Ведь такое часто происходит, когда только начинаешь осваивать что-либо, можешь упустить важные детали. Вот ты и упустил begin и end
Успехов в освоении оракла!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как из PL/SQL (СУБД -Oracle) поместить значение связываемой переменной в Delphi?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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