Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 37 38 39 40 41 42 43 44 45 [46]
 Re: FireDAC  [new]
white_nigger
Member

Откуда: Тула
Сообщений: 2250
Dmitry Arefiev
white_nigger,

я ответил еще 2 ноября.
Не получал ( Можешь продублировать на lcm.forums собачка gmail.com
8 ноя 19, 16:43    [22012484]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Mironico
Member

Откуда: Оттуда
Сообщений: 194
PostgreSQL базу умеет бекапить?
13 ноя 19, 16:52    [22015605]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
asviridenkov
Member

Откуда:
Сообщений: 3975
Дмитрий, не сталкивались с проблемой утечки хендлов при подключении к Oracle из потока?
Воспроизводится простейшим кодом, проверял на XE7 и 10.3, счетчик Handles в диспетчере задач каждый раз увеличивается на 9.

type

  TTestThread = class(TThread)
  protected
    Comment: string;
    procedure Execute; override;
  end;


procedure TTestThread.Execute;
var DB: TFDConnection;
    Connection: string;
begin
   try
     Connection := 'DBName@user;password';
     DB := nil;
     try
       DB := TFDConnection.Create(nil);
       DB.Params.Pooled := false;
       DB.DriverName := 'Ora';
       DB.Params.Database := Copy(Connection, 1, Pos('@', Connection) - 1);
       Delete(Connection, 1, Pos('@', Connection));
       DB.Params.UserName := copy(Connection, 1, pos(';', Connection)-1);
       Delete(Connection, 1, Pos(';', Connection));
       DB.Params.Password := trim(Connection);
       DB.Params.Values['CharacterSet'] := 'UTF8';
       DB.Connected := True;
     finally
       DB.Free;
     end;
   except on E: Exception do
     Comment := E.Message
   end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  TT := TTestThread.Create(true);
  TT.OnTerminate := OnTerminate;
  TT.FreeonTerminate := true;
  TT.Resume;
end;

procedure TForm1.OnTerminate(Sender: TObject);
begin
  Caption := TTestThread(Sender).Comment;
end;


FDManager на форме есть.
6 фев 20, 18:55    [22075076]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9785
Нет. Баги могут быть и в Оракл клиенте
7 фев 20, 10:28    [22075350]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
asviridenkov
Member

Откуда:
Сообщений: 3975
Dmitry Arefiev,

Но при этом если создавать из основного потока, то все ОК. Клиенту, по идее, должно быть все равно.
7 фев 20, 11:36    [22075449]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
asviridenkov
Member

Откуда:
Сообщений: 3975
Dmitry Arefiev,

Проверил на UniDAC - точно такой же код работает нормально. Число хендлов возрастает на 8 и тут же откатывается назад, так что дело не в клиенте.
7 фев 20, 18:16    [22075743]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Volk65
Member

Откуда:
Сообщений: 45
Прошу прощения за ламерский вопрос.
Как перечитать текущую запись (refresh current record) в FDStoredProc?
8 фев 20, 20:40    [22076133]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
L_argo
Member

Откуда:
Сообщений: 1117
Volk65
Прошу прощения за ламерский вопрос.
Как перечитать текущую запись (refresh current record) в FDStoredProc?
Кратко: Подключить к ней FDUpdateSQL с запросом и указанием
ключевого поля:

select ID, .....
from ....
where ..... and ID = :OLD_ID
12 фев 20, 14:48    [22078402]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
Volk65
Member

Откуда:
Сообщений: 45
L_argo
Volk65
Прошу прощения за ламерский вопрос.
Как перечитать текущую запись (refresh current record) в FDStoredProc?
Кратко: Подключить к ней FDUpdateSQL с запросом и указанием
ключевого поля:

select ID, .....
from ....
where ..... and ID = :OLD_ID


Я пробовал: exec my_stored_proc :OLD_ID так не работает. Select не всегда можно реализовать, т.к. а) процедура может содержать сложную логику получения данных, б) при изменении основного запроса также надо переписывать и запрос в FDUpdateSQL.

И FDUpdateSQL нужен (могу ошибаться) когда я изменяю данные на стороне клиента. А у меня не происходит изменения (редактирования) данных на клиенте. Клиент отправляет через Exec proc... на сервер данные, сервер вносит какие-то изменения, затем надо перечитать на клиенте эту строку.
12 фев 20, 18:40    [22078695]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
L_argo
Member

Откуда:
Сообщений: 1117
Я пробовал: exec my_stored_proc :OLD_ID так не работает.
Я тоже. И с тем же успехом :(
К сожалению эта важная проблема не решается. Дело даже не в сложной логике. Безопасность важна тоже: прямые запросы - не хорошо.
А жаль.
14 фев 20, 14:28    [22080042]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
SergSni
Member

Откуда:
Сообщений: 2
Вопросы по работе с Oracle LOB

Есть grid посоединенный к FDQuery. Хочется иметь простую вещь - чтобы LOB не фетчился в память (это сильно замедляет запрос и раздувает использование памяти).
За это, видимо, отвечает свойство FetchOptions.items.fiBlobs. Но если его отключить, то в поле всегда пишется (WideMemo) безотносительно того, пустое поле или нет. Есть ли возможность все-таки выводить (WideMemo) /(WIDEMEMO) ?
В DOA это, кстати, делалось без проблем.

И теперь о самой надписи типа (WideMemo) ...
Можно ли как-то уйти от этой абстракции и выводить реальный тип данных Oracle (Blob Clob Long и т.п.)

Я, разумеется, пытался все это гуглить, но никаких разумных ответов не нашел


PS Delphi 10.2
16 фев 20, 10:58    [22080664]     Ответить | Цитировать Сообщить модератору
 Re: FireDAC  [new]
vavan
Member

Откуда: Казань
Сообщений: 3474
SergSni
теперь о самой надписи типа (WideMemo) ...
Можно ли как-то уйти от этой абстракции и выводить реальный тип данных Oracle (Blob Clob Long и т.п.)
можно конечно, я когда-то заряжал qc#86106 на тему этого бага, но сомневаюсь что поправили даже в современных версиях. если не охота повсеместно OnGetText выставлять то можно свои базовые TMemoField (и прочие лоб-типы) сделать и там прям на уровне GetText возвращать что угодно
SergSni
Я, разумеется, пытался все это гуглить, но никаких разумных ответов не нашел
я даже на этом ресурсе об этом помнится писал, как и например у девэксов (b148632/B190664) и самой эмбракодельни
17 фев 20, 10:40    [22081059]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 37 38 39 40 41 42 43 44 45 [46]
Все форумы / Delphi Ответить