Найдено 9 результатов

Kverde
Пн 27 мар 2017 10:54
Форум: Oracle Data Access Components
Тема: Предложения по новым функция датасета
Ответы: 1
Просмотры: 9536

Предложения по новым функция датасета

При использовании компонентов очень удобными были бы две нижеописанные функции.
Рассмотрите, пожалуйста их добавление или возможно уже это как-то реализовано.

1.
Для обычной работы достаточно написать запрос, поля в Field Editor добавлять не требуется, они будут созданы автоматически.

Но когда требуется одно lookup поле то приходится добавить его и все остальные используемые поля.
Если добавить только одно lookup поле то другие поля добавлены не будут.

Очень было бы удобно добавить только одно lookup поле а все другие создались бы автоматически.
С учетом таких параметров как Options.DefaultExpression, RequiredFileds и др. - поменял на БД и все работает, а в коде никаких изменений.


2.
Иногда бывает нужно некоторое поле, например для отметки checkbox, которое не требуется никак сохранять.

Очень просто добавить его в датасет так:

select
t.field1,
t.field2,
0 as checkbox
from
table t

Но при изменении строки датасет пытается добавить это поле в запросы insert, update и получается ошибка.
Очень удобно была бы какая-то возможность или вообще не отправлять такие поля в запросы
или как-то отметить поле что его не требуется отправлять.
или реализовать предложение из пункта 1, чтобы можно было добавить одно calculated поле, без добавления остальных полей в FieldEditor
Kverde
Вт 15 ноя 2016 08:48
Форум: Oracle Data Access Components
Тема: Память занимаемая данными в TOraQuery
Ответы: 1
Просмотры: 5979

Память занимаемая данными в TOraQuery

Подскажите, пожалуйста, можно ли как-то узнать сколько памяти занимают данные которые хранятся в конкретном датасете (TOraQuery)?
Kverde
Пт 20 май 2016 10:55
Форум: Oracle Data Access Components
Тема: Локальная сортировка полей объекта
Ответы: 6
Просмотры: 9661

Re: Локальная сортировка полей объекта

отправил на почту , на всякий случай прикладываю сюда пример
Delphi 2010, Oracle 11

При выполнении
OraQuery1.IndexFieldNames := 'e.num;';
возникает ошибка
Kverde
Пт 20 май 2016 05:41
Форум: Oracle Data Access Components
Тема: Локальная сортировка полей объекта
Ответы: 6
Просмотры: 9661

Re: Локальная сортировка полей объекта

В примере когда датасет открыт в нем оказывается набор полей (в Fields), "e.num", "e.ser" и тд. Другие операции с этими полями не отличаются от того как бы это был обычный select, но вот сортировка не работает. Была бы удобна такая возможность, но если так сделать нельзя то, конечно, есть и другие способы отсортировать.
Kverde
Ср 18 май 2016 11:21
Форум: Oracle Data Access Components
Тема: Локальная сортировка полей объекта
Ответы: 6
Просмотры: 9661

Локальная сортировка полей объекта

Подскажите, пожалуйста, можно ли выполнить такую сортировку локально?

Есть функция

Код: Выделить всё

lpu.bl_info.F_GET_BEG_INFO(rs.pid, num, ser) 
возвращает тип данных

Код: Выделить всё

CREATE OR REPLACE TYPE "LPU"."BL_BEG_INFO" is object (
   ID_P_BL NUMBER(8), SER VARCHAR2(7), NUM NUMBER, DATE_BEG DATE, DIA_S NUMBER(7,2), DIA_S_CIPHER VARCHAR2(10),DOCTOR_S NUMBER(5), DOCTOR_S_FIO VARCHAR2(100), DOCTOR_S_SPEC VARCHAR2(50)
)
в датасете прописан запрос

Код: Выделить всё

select 
  lpu.bl_info.F_GET_BEG_INFO(2303849, 10546654, 'ВУ') e
from 
  dual
(для примера результат одна строка)

При выполнении такого кода

Код: Выделить всё

  OraQuery1.Open;
  OraQuery1.IndexFieldNames := 'e.num;';

ошибка
Invalid IndexFieldNames format!
Kverde
Вт 02 сен 2014 12:14
Форум: Oracle Data Access Components
Тема: Нехватает dpk в Demos\ThirdParty\FastReport\FR4
Ответы: 3
Просмотры: 5542

Re: Нехватает dpk в Demos\ThirdParty\FastReport\FR4

Спасибо.

Еще один вопрос по документации
http://www.devart.com/odac/docs/deployment.htm

В разделе
Deploying Windows applications built with run-time packages

dacXX.bpl always
dacXX.bpl always
odacXX.bpl always

dacXX написано два раза, это опечатка и требуется только две bpl dacXX и odacXX (OdacVcl и CRDBGrid не используется)?
Kverde
Чт 28 авг 2014 04:56
Форум: Oracle Data Access Components
Тема: Нехватает dpk в Demos\ThirdParty\FastReport\FR4
Ответы: 3
Просмотры: 5542

Нехватает dpk в Demos\ThirdParty\FastReport\FR4

В версии для Delphi 2010 есть каталог с dpk
Demos\ThirdParty\FastReport\FR4\Delphi14

в версии для Delphi XE6 такого каталога нет, есть только
Demos\ThirdParty\FastReport\FR4\Demo
Kverde
Ср 13 авг 2014 09:06
Форум: Oracle Data Access Components
Тема: Утечка памяти при использовании TOraNestTable
Ответы: 5
Просмотры: 10325

Утечка памяти при использовании TOraNestTable

Добрый день, помогите, пожалуйста, разобраться с проблемой.

В базе есть пакет с одной процедурой

Код: Выделить всё

create or replace type "INT_ARRAY" is table of integer;

create or replace package test_table is

procedure test(ARM_IDs in int_array);

end test_table;
/

create or replace package body test_table is

procedure test(ARM_IDs in int_array) is
begin
  null;
  null;
end;

end test_table;
/
Создаю модуль с помощью Package Wizard

Код: Выделить всё

unit TestTable;

interface

uses
  {$IFDEF MSWINDOWS} Windows,{$ENDIF} SysUtils, Classes, DB, DBAccess, Ora, OraPackage,
  FMTBcd, OraClasses, OraObjects, OraCall;

type
  TSystem_Test_Table = class(TCustomOraPackage)
  public
    constructor Create(AOwner: TComponent); override;
    procedure Test(const Arm_Ids: TOraNestTable);
  end;

implementation

{ TSystem_Test_Table }

constructor TSystem_Test_Table.Create(AOwner: TComponent);
begin
  inherited;

  PackageName := 'SYSTEM.TEST_TABLE';
end;

procedure TSystem_Test_Table.Test(const Arm_Ids: TOraNestTable);
var
  Arm_Ids_Param: TOraParam;
begin
  BeginExecPLSQL;
  try
    Arm_Ids_Param := AddParam('ARM_IDS', ftDataSet, ptInput);
    Arm_Ids_Param.AsTable := Arm_Ids;
    ExecProc('TEST');
  finally
    EndExecPLSQL;
  end;
end;

end.
В программе включено сообщение об утечках памяти

Код: Выделить всё

program Project2;

uses
  Forms,
  Unit1 in 'Unit1.pas' {Form1},
  TestTable in 'TestTable.pas';

{$R *.res}

begin
  ReportMemoryLeaksOnShutdown := True; 
Если в следующем коде Table.Free; закоментированно, то при закрытии программы появляется сообщение
An unexpected memory leak has occurred. The unexpected small block leaks are:
1 - 12 bytes: Unknown x 4
53 - 60 bytes: TOraNestTable x 2
Если не закоментированно то появляется ошибка на System_Test_Table.Free;
TOraType.Free RefCount = 0 (D:\Projects\Delphi\Dac\Common\Source\MemData.pas, line 8698)

Код: Выделить всё

procedure TForm1.Button1Click(Sender: TObject);
var
  Table: TOraNestTable;
  i: Integer;
begin
  Table := TOraNestTable.Create(TOraType.Create(OraSession1.OCISvcCtx, 'INT_ARRAY'));

  i := Table.AppendItem;
  Table.ItemAsInteger[i]:= 2;

  i := Table.AppendItem;
  Table.ItemAsInteger[i]:= 3;

  i := Table.AppendItem;
  Table.ItemAsInteger[i]:= 4;


  System_Test_Table.Test(Table);

  Table.Free;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  OraSession1.Server   := '';
  OraSession1.Password := '';
  OraSession1.Username := '';

  OraSession1.Connect;

  System_Test_Table :=  TSystem_Test_Table.Create(nil);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  OraSession1.Disconnect;

  System_Test_Table.Free;
  //тоже самое с System_Test_Table.Params.Clear;
end;
Delphi 2010, Версия ODAC 9.3.9
В приложении исходный код примера.