Bem Vindo, Visitante
Você tem que se registrar antes, para poder colocar mensagens no Fórum.

Nome de usuário/Email:
  

Senha
  





Pesquisar Nos Fóruns

(Pesquisa Avançada)

Estatísticas do Fórum
» Membros: 334
» Último Membro: tsarturi
» Tópicos do Fórum: 88
» Inserção de Mensagens: 388

Estatísticas Completas

usuários Online
Estão de momento 25 usuárioes online.
» 0 Membro(s) | 24 Visitante(s)
Bing

Últimos Tópicos
Fechar conexão
Fórum: Como Usar
Última Mensagem: MaikonPanazzolo
04-06-2019, 05:03 PM
» Respostas: 7
» Visualizações: 456
Conexão com banco de dado...
Fórum: Como Usar
Última Mensagem: MaikonPanazzolo
04-06-2019, 11:59 AM
» Respostas: 0
» Visualizações: 57
Como gravar TBlob de Stre...
Fórum: Como Usar
Última Mensagem: marson
31-05-2019, 12:14 PM
» Respostas: 0
» Visualizações: 66
Erro ao Excluir
Fórum: RESTFull DataSnap
Última Mensagem: ailtonbrc
29-05-2019, 03:55 PM
» Respostas: 4
» Visualizações: 210
Componente X Codigo ORMBr
Fórum: RESTFull DataSnap
Última Mensagem: ailtonbrc
24-05-2019, 08:49 PM
» Respostas: 0
» Visualizações: 99
Consulta por ICritéria
Fórum: Como Usar
Última Mensagem: Isaque Pinheiro
21-05-2019, 04:33 PM
» Respostas: 1
» Visualizações: 153
Load Lazy automático
Fórum: Como Usar
Última Mensagem: Isaque Pinheiro
12-04-2019, 07:15 AM
» Respostas: 1
» Visualizações: 367
Erro instanciando TContai...
Fórum: Usando DataSet
Última Mensagem: juliomar
04-04-2019, 05:37 AM
» Respostas: 3
» Visualizações: 608
Campos Nullable
Fórum: Como Usar
Última Mensagem: Deivison Davi Albring
19-03-2019, 10:38 AM
» Respostas: 4
» Visualizações: 922
Como Povoar classes de ta...
Fórum: Como Usar
Última Mensagem: Deivison Davi Albring
15-03-2019, 03:21 PM
» Respostas: 2
» Visualizações: 563

 
  Conexão com banco de dados
Inserido por: MaikonPanazzolo - 04-06-2019, 11:59 AM - Fórum: Como Usar - Sem Respostas

Bom dia pessoal, estou novamente fazendo alguns testes em conexão remota via socket em Delphi, e para a conexão com banco de dados estou utilizando do ORMBr em banco de dados MariaDB. Para as conexões com o banco de dados estou criando em tempo de execução e destruindo para cada conexão remota e na hora de desconectar eu removo do registro do banco de dados os usuários que estavam conectados no acesso, porém ao tentar usar o comando "OpenWhere" com o nome da coluna e o conteúdo a ser buscado, está retornando o erro indicado na imagem abaixo. Alguém poderia me ajudar com isso? Outra dúvida, como comentei estou criando uma conexão com o banco de dados para cada conexão remota criada e as vezes parece que ocorre algum conflito e retornam erros de tabelas, como posso trabalhar de forma correta nesse caso para que não ocorram erros de conexão?



Arquivo(s) anexado(s) Miniatura(s)
   
Imprimir este artigo

  Como gravar TBlob de Stream
Inserido por: marson - 31-05-2019, 12:14 PM - Fórum: Como Usar - Sem Respostas

Olhei os demos que acompanham o código mas, em nenhum encontrei gravação de Blobs do tipo texto, nem mesmo imagens saídas de Stream, ou componentes como TImage ... Como faz?  Huh

Imprimir este artigo

  Erro ao Excluir
Inserido por: ailtonbrc - 26-05-2019, 12:00 AM - Fórum: RESTFull DataSnap - Respostas (4)

Já tive este problema antes, atualizei os fontes e parou de acontecer mas depois da instalação com componente não sei se mudou algo nos fontes mas o erro ao excluir esta ocorrendo novamente.  porém atualize hoje os fontes e o erro persiste (Na Verdade não da erro apenas cai no methodo que esta comentado o código) não consigo ver onde esta o erro e porque ele esta enviando para este método, sendo que estava funcionando corretamente  e em algum momento aprontei algo que mudou isto. tem como me dar um socorro???

como estou usando no client:  TFDMemTable

Variável privada no  (Client) : 
           private
            oDataSnapMaster: IContainerDataSet<TSituacaoCadastral>;
          
no metodo excluir (Client) : .
  oDataSnapMaster.Delete();
  if oDataSnapMaster.DataSet.State in [dsInsert,dsEdit] then
    oDataSnapMaster.DataSet.Post;
  oDataSnapMaster.ApplyUpdates(0);

Método onde o código esta indo na depuração

unit ormbr.session.datasnap;

procedure TSessionDataSnap<M>.Delete(const AObject: M);

var
  LColumn: TColumnMapping;
begin
//  for LColumn in AObject.GetPrimaryKey do
//    Delete(LColumn.PropertyRtti.GetValue(TObject(AObject)).AsInteger);
end;

Imprimir este artigo

  Componente X Codigo ORMBr
Inserido por: ailtonbrc - 24-05-2019, 08:49 PM - Fórum: RESTFull DataSnap - Sem Respostas

Eu estava fazendo meu projeto de forma manual (sem componente) , adquiri o componente e iniciei o uso, porem precisei retornar ao código anterior e percebi que mesmo não fazendo atualizações de fontes o método cancel parou de funcionar, 

percebi que nem chega mais no servidor tem algo de diferente? como posso corrigir ou qual a unit que fera o cancel para eu depurar "para não ficar procurando do passo a passo"


teve atualizações recentes no fontes, posso baixar sem prejuízo?

a proposito para retornar ao projeto anterior voltei tudo (servidor e client)

Imprimir este artigo

  Consulta por ICritéria
Inserido por: BrunoMaia - 20-05-2019, 11:14 PM - Fórum: Como Usar - Respostas (1)

Boa noite. 
Olhando os exemplos, vejo que realmente é simples implementar um CRUD. Porém a minha dúvida é um pouco mais adiante.
Imagine o cenário.
Tenho uma estrutura de pedido devidamente relacionada
Pedido -> Itens
          -> Cliente
          -> Pagamentos
          -> Transportadora


Pelo oque entendi, fazendo um open do pedido, todos os campos dessas classes vão ser carregados.
Gostaria de saber se tendo essa estrutura, como posso fazer uma consulta para retornar apenas por exemplo (Código do cliente, nome do cliente, total do pedido e formas de pagamento) sem carregar as outras colunas.

Pelo oque vi, teria q utilizar um ICritéria que me retornaria um DataSet e desta forma não iria usar a estrutura criada. 

Estou certo ou comi bola em algum ponto?

Imprimir este artigo

  Fechar conexão
Inserido por: MaikonPanazzolo - 20-05-2019, 09:10 AM - Fórum: Como Usar - Respostas (7)

Boa dia pessoal, estou tendo um problema na hora de finalizar meu sistema com uma conexão ativa, por exemplo, no meu sistema tenho algumas tabelas de conexão com o banco de dados e em todos os métodos necessários que comunicam com o banco de dados seja por insert ou por edit, estou associando uma variável que vai herdar do método da conexão com o banco, e depois de feito o procedimento eu libero essa variável, porém na hora de finalizar meu sistema utilizando o parâmetro ReportMemoryLeaksOnShutdown do Delphi, eu obtenho o retorno com muita perda de memória, e todos os objetos estão relacionados aos componentes ORMBR, qual é a melhor forma de liberá-los da memória após o uso? Alguém poderia me fornecer essa informação? No link abaixo tem bem certo os locais que estão retornando o memory leak.

http://prntscr.com/nqx57d

Att. Maikon



Arquivo(s) anexado(s) Miniatura(s)
   
Imprimir este artigo

  Load Lazy automático
Inserido por: Odlawso - 09-04-2019, 06:03 PM - Fórum: Como Usar - Respostas (1)

Saudações.

Estou implementando um projeto usando o ORMBr e vi a necessidade de usar load lazy para obter melhor desempenho.
Entretanto, uma dificuldade que estou tendo é o fato de ter que fazer o carregamento das dependências manualmente, ou seja, através de uma linha de comando.
É possível, ou há previsão de que o ORMBr faça o carregamento automaticamente quando o objeto fosse acessado?

Obrigado.

Imprimir este artigo

  Erro instanciando TContainerClientDataSet com coluna > 31 caracteres e valor default
Inserido por: Odlawso - 29-03-2019, 04:02 PM - Fórum: Usando DataSet - Respostas (3)

Saudações!

Está ocorrendo um erro quando instancio um TContainerClientDataSet<M> cuja entidade M contenha uma coluna com nome maior que 31 caracteres, conforme exemplo abaixo.
No Dictionary, além de ter o nome grande, a coluna precisa ter um valor default. Sem o valor default o erro não ocorre.

---- Início do exemplo

Classe TPedido:
----

type
  [Entity]
  [Table('pedido', '')]
  [PrimaryKey('codigo', NotInc, NoSort, False, 'Chave primária')]
  Tpedido = class(TInterfacedObject, Ipedido)
  private
    { Private declarations }
    Fcodigo: Integer;

...

    Fvalor_outras_despesas_acessorias: Currency;

...

  public
...

    [Column('valor_outras_despesas_acessorias', ftCurrency)]
    [Dictionary('valor_outras_despesas_acessorias', 'Mensagem de validação', '0', '', '', taRightJustify)]
    property valor_outras_despesas_acessorias: Currency read Fvalor_outras_despesas_acessorias write Fvalor_outras_despesas_acessorias;


Chamada onde ocorre o erro:
------

FContainerPedido := TContainerClientDataSet<TPedido>.Create(FConn.Conn, qryPedido);


Exception:
------

valor_outras_despesas_acessorias: Preparation of default expression failed with error "Violação de acesso ao endereço 009AE939 no módulo 'MeuServer.exe'. Leitura do endereço 00000034"

---- Fim do exemplo

Alguém já passou por esse problema e tem uma solução?

Imprimir este artigo

  Campos Nullable
Inserido por: Deivison Davi Albring - 15-03-2019, 03:35 PM - Fórum: Como Usar - Respostas (4)

Tenho um modelo que contem campos do tipo Nullable<String> ex:

    [Column('BASE_FONE_CON1', ftString, 15)]
    [Dictionary('BASE_FONE_CON1', 'Mensagem de validação', '', '', '', taLeftJustify)]
    property BASE_FONE_CON1: Nullable<String> read FBASE_FONE_CON1 write FBASE_FONE_CON1;


Tudo certo, populo a classe TBASE e, na hora de jogar os dados na tela para os edit's, se o campo acima estiver NULL no banco de dados
ocorre o erro : 

Invalid operation, Nullable type has no value.

gostaria de saber se tem alguma maneira de tratar esse retorno para trazer um default talvez quando o campo for NULL.

Sei que existe a função .GetValueOrDefault, mas além disso, nao teria como o framework tratar automaticamente e trazer um default no lugar de null?

Obrigado!

Imprimir este artigo

  Como Povoar classes de tabelas usando joins
Inserido por: Deivison Davi Albring - 14-03-2019, 04:27 PM - Fórum: Como Usar - Respostas (2)

Existe algum método, tipo um "Load" que sirva para povoar as classes das tabelas?

por enquanto estou fazendo uma class function exemplo :

class fuction Load(id : Integer): TPESSOA;
var
  oContainer : TContainerObjectSet<TPESSOA>;
  List : TObjectList<TPESSOA>;
begin
  oContainer := TCOntainerObjectSet<TPESSOA>.Create(oConn);
  List := oContainer.Findwhere('id = '+id.ToString);
  Result := List.First;
end;

isso retorna um objeto TPESSOA contendo um registro
no formulário só preciso passar pra um TObjectList e posso usar, até aí tudo bem..

agora, se eu quiser fazer isso usando Joins...?
(Pode ser que eu não descobri que ja existe um método mais fácil, mas,caso não exista, fica a dica de implementar uma função como essa nativamente no Framework)

Imprimir este artigo