powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Получить значение из блока PL/SQL
18 сообщений из 18, страница 1 из 1
Получить значение из блока PL/SQL
    #39641064
Юлия0694
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прошу подсказки у знающих:
Есть небольшой PL/SQL блок в Oracle Query (Delphi):
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
" DECLARE
    v_count   BINARY_INTEGER := 0;
BEGIN
  SELECT COUNT ( cnt )
    INTO v_count
    FROM ( SELECT COUNT ( * ) cnt
             FROM pdm_dpp.a_tech_doc a
            WHERE a.id_sum_spec = :id_sum_spec
              AND a.v_e = 999999
              AND a.tag_a <> 0
         GROUP BY a.num_serial )
   WHERE (cnt) > 1;
  /*DBMS_OUTPUT.PUT_LINE ( v_count );
  IF ( v_count > 0 ) THEN
    DBMS_OUTPUT.PUT_LINE ( 'Дублирование №п/п позиций штампа тех. документации' );
  END IF;*/
END; "


В procedure мне необходимо реализовать условие: если переменная V_COUNT >0, то происходит вывод "сообщения" в поле Memo. Как правильно вытянуть с блока переменную?

Пыталась сделать это так:
Код: pascal
1.
2.
3.
4.
if (oqCount_V.GetVariable('V_COUNT') > 0) then
	begin
		meLogSS.Lines.Add('Дублирование №п/п позиций штампа тех. документации');
	end;



Подскажите пожалуйста.

Модератор: Пользуйтесь тегом (кнопкой) SRC для оформления кода, пожалуйста.
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641067
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юлия0694,

Вы бы написали, что именно не получилось.
Да, вроде, и PL/SQL для этого запроса не нужен...
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641074
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT COUNT ( * ) cnt
  FROM pdm_dpp.a_tech_doc a
WHERE a.id_sum_spec = :id_sum_spec
     AND a.v_e = 999999
     AND a.tag_a <> 0
 GROUP BY a.num_serial
HAVING COUNT(*) > 1



анонимный блок не нужен
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641085
Юлия0694
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ma1tus,
Правильно ли я обращаюсь к переменной с Oracle Query?
Вот эта строка: oqCount_V.GetVariable('V_COUNT') > 0
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641087
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ma1tusчто именно не получилось.Сморозил... ))

Наверное, в DOA как-то так:
Код: plsql
1.
begin select * into :x from dual end;
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641089
ma1tus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юлия0694,

plsql-переменная и параметр компонента - не одно и тоже. Попробуйте вместо Declare в plsql, DeclareVariable в delphi...
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641099
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Юлия0694ma1tus,
Правильно ли я обращаюсь к переменной с Oracle Query?
Вот эта строка: oqCount_V.GetVariable('V_COUNT') > 0
чем не устроило простое решение 21391377 ?
хочется странного ?
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641186
b0rk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Юлия0694
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
" DECLARE
    v_count   BINARY_INTEGER := 0;
BEGIN
  SELECT COUNT ( cnt )
    INTO v_count
    FROM ( SELECT COUNT ( * ) cnt
             FROM pdm_dpp.a_tech_doc a
            WHERE a.id_sum_spec = :id_sum_spec
              AND a.v_e = 999999
              AND a.tag_a <> 0
         GROUP BY a.num_serial )
   WHERE (cnt) > 1;

  :v_count  := v_count ;
END; "


[/quot]
так пойдет?
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641706
Юлия0694
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
b0rk, СПАСИБО!!!)
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641707
Юлия0694
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за ответы!)
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641712
Vlad F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
b0rk<...>
так пойдет?
Древнеримские программисты подобный стиль называли, - per anus ad astra.
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39641816
Фотография stells2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юлия0694,
не вдаваясь в логику вашу, из того что есть - просто замените на
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT COUNT ( cnt ) v_count
FROM 
( SELECT COUNT ( * ) cnt
  FROM pdm_dpp.a_tech_doc a
  WHERE a.id_sum_spec = :id_sum_spec
      AND a.v_e = 999999
      AND a.tag_a <> 0
  GROUP BY a.num_serial 
)
WHERE cnt > 1



без всяких begin, into и прочей лабуды. ну, или как предложил defecator 21391377
дальше:
Код: pascal
1.
2.
3.
4.
5.
oqCount_V.Active := true;
 if (oqCount_V.FieldByName('v_count').AsInteger > 0) then
 begin
     meLogSS.Lines.Add('Дублирование №п/п позиций штампа тех. документации');
 end; 
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39642030
Фотография kloun02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если написано по тех.заданию сабжу что надо из анонимного блока , то почему некоторым кажецца что обязательно надо как то по другому ?
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39642031
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
08.05.2018 14:23, kloun02 пишет:
> Если написано по тех.заданию сабжу что надо *из анонимного блока*, то почему некоторым кажецца что обязательно надо как то по другому ?

ты так сильно любишь школьников?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39642036
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мимопроходящий08.05.2018 14:23, kloun02 пишет:
> Если написано по тех.заданию сабжу что надо *из анонимного блока*, то почему некоторым кажецца что обязательно надо как то по другому ?

ты так сильно любишь школьников?


Известный способ сделать работу чужими руками - представиться девушкой.
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39642194
Фотография stells2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kloun02,
1. Простите, это бред - указывать программисту, в любом документе и даже на словах - как оформлять запрос в компоненте, который в общем, кроме этого программиста - вообще никому не доступен.
2. Есть элементарные вещи - например, есть борщ ложкой, ну по крайней мере тем, чем можно хлебать и зачерпывать но никак не вилкой и уж тем более не палочками для суши.

Но, если это задание для кандидата на должность программиста - я снимаю шляпу перед человеком, который такое задние дал.
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39642463
Фотография kloun02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stells21. Простите, это бред - указывать программисту, в любом документе и даже на словах - как оформлять запрос в компоненте, который в общем, кроме этого программиста - вообще никому не доступен .Программистов может быть больше одного... И к сожалению среди этих программистов есть такие индивидуалы которые этого не понимают.

stells22. Есть элементарные вещи - например, есть борщ ложкой, ну по крайней мере тем, чем можно хлебать и зачерпывать но никак не вилкой и уж тем более не палочками для суши.Хлебай лаптем, чо

stells2Но, если это задание для кандидата на должность программиста - я снимаю шляпу перед человеком, который такое задние дал.Например, преподаватель дал задание студенту, а у препода всякие звания и степени...

з.ы.
Кац,
Тут любителей школьниц и без меня хватает, читающих тех задания по диагонали, и друг друга баянющие решениями простейших школьных задачек.
...
Рейтинг: 0 / 0
Получить значение из блока PL/SQL
    #39642490
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
10.05.2018 8:33, kloun02 пишет:
> з.ы.
> Кац,
> Тут любителей школьниц и без меня хватает, читающих тех задания по диагонали,
> и друг друга баянющие решениями простейших школьных задачек.

когда человек не такой, как вообще, потому один такой, а другой такой,
и ум у него не для танцевания, а для устройства себя,
для развязки свого существования, для сведения обхождения,
и когда такой человек, ежели он вчёный, поднимется умом своим за тучи
и там умом своим становится ещё выше Лаврской колокольни,
и когда он студова глянет вниз, на людей, так они ему покажутся такие махонькие-махонькие,
всё равно как мыши… пардон, как крисы…
потому что это же Человек!!
а тот, который он, это он, он тоже человек, невчёный, но… зачем же?!
это ж ведь очень и очень! Да! Да! Но нет!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Получить значение из блока PL/SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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