Ajuda  Calendário  Lista de Membros  Pesquisar  Portal
 Portal  Pesquisar  Lista de Membros  Calendário
Olá, Visitante!  Registrar  Entrar
Inserido por: samuca.ti@hotmail.com - 17-09-2018, 08:54 AM - Fórum: Usando DataSet - Respostas (14)
  • Boa tarde Pessoal,

    estou quebrando a cabeça no segunte problema

    No banco sqlserver a coluna "Descricao" está como not null.

    se eu fizer um insert via management studio 
    insert INSERT INTO MESA (DESCRICAO) VALUES ('') - ok

    via 
    oMesas := TContainerObjectSet<TMesa>.Create(iBDConexao, -1);

    Mesa.descricao := '';
    oMesas.Insert(Mesa); -ok

    porem ao recarregar o clientdataset dá a mensagem "Field value required" e dá access violation e fecha o app.

    resposta obvia: "o campo é obrigatorio e estou inserindo vazio ("nao estou mandando null")"

    porem ele deixa gravar tanto no sql quanto no container, o problema é ao carregar, não deveria dar essa mensagem visto que o campo não está como null no registro e sim com 'vazio'.

        [Restrictions([NotNull])]
        [Column('DESCRICAO', ftString, 30)]
        [Dictionary('DESCRICAO', 'Descrição da Mesa', '', '', '', taLeftJustify)]
        property descricao: String read FDESCRICAO write FDESCRICAO;


    Origens do Problema:
    procedure TSessionDataSet<M>.OpenSQL(const ASQL: string);

    onde alimenta os fields no cds:
    procedure TBindDataSet.SetInternalInitFieldDefsObjectClass(ADataSet: TDataSet; AObject: TObject);

    if LColumn.IsNotNull then
          ADataSet.FieldByName(LColumn.ColumnName).Required := True;

    se alguem tiver uma solução e puder ajudar, estou tentando aqui mas se alguem conseguir achar algo antes.

    obrigado

Inserido por: samuca.ti@hotmail.com - 14-09-2018, 01:41 PM - Fórum: Usando DataSet - Respostas (2)
  • É possível gerar o clientdataset de um TContainerObjectSet?

    estou usando o CDS só para preencher a grade e as demais operações gostaria de usar o objeto(TContainerObjectSet).

    eu fiz assim:
    oMesas := TContainerObjectSet<TMesa>.Create(iBDConexao, -1);//para manipular os objetos insert,update,delete
    iMesas := TContainerClientDataSet<TMesa>.Create(iBDConexao, cdsMesas);//carregar a grade
    iMesas.Open;

    pensei em algo do tipo iMesas.LoadFromObjectSet(oMesas);

    a fim de econoziar buscas no banco, buscaria os dados somente uma vez no ObjectSet.

Inserido por: samuca.ti@hotmail.com - 12-09-2018, 10:50 AM - Fórum: Exemplos - Respostas (2)
  • Bom dia Pessoal, 

    estou tentando compilar o demo C:\ORMBR\Demo\Data\ADO

    e está dando erro de arquivo inexistente, quando compilo, estou usando o Delphi 10.2, baixei o fonte em: https://bitbucket.org/isaquepinheiro/ormbr/src, procurei o arquivo e não encontro, já adicionei os library path bonitinho.

      {$IFDEF DRIVERRESTFUL}
      ormbr.client.interfaces,
      {$ENDIF}

    no arquivo C:\ORMBR\Source\RESTful\ormbr.restdataset.fdmemtable.pas

    Quem puder me ajudar.

    obrigado

Inserido por: israelbcoelho - 20-07-2018, 11:24 AM - Fórum: Como Usar - Respostas (2)
  • Bom dia


    Como trabalhar com TBlob sem DataSet (Firemonkey)
        
      * Como realizar o Bind dos dados 
         - TBlob     => TImage  
         - TImage  => TBlob

Inserido por: israelbcoelho - 17-07-2018, 07:35 AM - Fórum: Como Usar - Respostas (5)
  • Bom dia 


    Estou estudando e realizando teste com o Framework e me deparei com um problema que não consegui resolver,
    tenho um relacionamento entre tabelas e o Framework  esta carregando os dados em loop por causa do meu relacionamento, vi que existe um 
    LazyLoad mais não consegui entender como funciona, segue exemplificado;

    Ex:

    TFilial (Tabela)
       - Id  : integer
       - UsuarioCadastro : TUsuario;
        

    TUsuario(Tabela)
       - Id : Integer;
       - UsuarioCadastro : TUsuario;


    Quando executo um TFilial.Find ele instancia a lista para retorno e "UsuarioCadastro" que instancia um novo "UsuarioCadastro" que esta no TUsuario desta forma realizando um efeito cascata, como sair deste loop

Inserido por: Cassiano - 05-07-2018, 04:33 PM - Fórum: Como Usar - Respostas (2)
  • Parceiros, estou fazendo assim para editar um registro.
    Se eu clicar no botão e editar a 1ª vez, funciona OK.
    Mas se eu tentar editar novamente, sem fechar o formulário
    dá erro de " FireDac erro column TCONTA.TITULAR cannot be repeated in update statement".

    Como se eu estivesse executando um upadete no mesmo campo duas vezes.

    Segui rigorosamente o exemplo da pasta FireDac sem Dataset.

    Posso postar o exemplo que fiz. Caso alguém se disponha a me ajudar. 

    Muito obrigado.

    Código:
    function TfrmCadConta.Save: Boolean;
    var
      objConta: TCONTA;
    begin
     objConta := TCONTA.Create;
    try
          objConta := oMasterList.Items[dsQuery.DataSet.RecNo -1];
          oMaster.Modify(objConta);

          objConta.FK_BANCO             := Integer(cbbBanco.items.objects[cbbBanco.ItemIndex]);
          objConta.TITULAR              := edtTitular.Text;
          objConta.AGENCIA              := edtNumAgencia.Text;
          objConta.CONTA                := edtConta.Text;
          objConta.BANCO_NOME           := cbbBanco.Text;
        try
          oMaster.Update(objConta);
          Result := True;
        except
          Result := False;
           raise Exception.Create(ErrorEdit);
        end;
    finally
        objConta.Free;
    end;

Inserido por: Geule - 24-06-2018, 10:00 PM - Fórum: Como Usar - Respostas (3)
  • Olá amigos!

    Estou iniciando agora no Framework. 
    Procurei mas não encontrei solução para a seguinte
    situção:

    Ao executar um update, em uma tabela que possui FK, 
    ocorre erro de "Item not Found" exatamente no campo
    da chave estrangeira. 


    Código:
    var
     objSubgrupo: TSUBGRUPO;
    begin
      objSubgrupo := TSUBGRUPO.Create;
      try
        try
          objSubgrupo.ID := FIDRegistro;
          objSubgrupo.IDGRUPO := FIDGrupo; {erro aqui de Item Not Found}
          objSubgrupo.SUBBRUPO_DESC := edtSubgrupo.Text;
          //
          oContainerClient.Update(objSubgrupo);
          oMaster.Save(objSubgrupo);
          oMaster.ApplyUpdates(0);
          //
          Result := True;
        except
          Result := False;
          raise Exception.Create(ErrorEdit);
        end;
      finally
        objSubgrupo.Free;
      end;


    Segue parte do código da classe:


    Código:
    //....
    Restrictions([NotNull])]
    [Column('FK_GRUPO', ftInteger)]
    [ForeignKey('FK_SUBGRUPO_1', 'FK_GRUPO', 'GRUPO', 'ID_GRUPO', SetNull, Cascade)]
    [Dictionary('FK_GRUPO', 'Mensagem de validação', '', '', '', taCenter)]
    property IDGRUPO: Integer read FIDGRUPO write FIDGRUPO;
    //....



    Muito Obrigado!

Inserido por: garciamauro - 19-06-2018, 05:30 PM - Fórum: Como Usar - Respostas (8)
  • Tentei utilizar o upWhereAll do Firedac para obter uma exceção na edição do mesmo registro por mais de um usuário no entanto o encarregado pelo criação da string de update é o ORMBR então não funcionou, como posso fazer trava pessimista/otimista como o ORMBR em suma como obter ACID, não achei nos exemplos.

Inserido por: Osiel Gomes - 24-05-2018, 12:51 AM - Fórum: Usando DataSet - Respostas (1)
  • Pessoal tenho o seguinte código:

      containerContaPagar := TContainerFDMemTable<TModelContaPagar>.Create(Fconn.Conn, AQuery);
      containerTipoConta  := TContainerFDMemTable<TModelTIPOCONTA>.Create(Fconn.Conn, AQueryTipoConta, containerContaPagar.This);

    O detalhe é que no meu Model do TModelContaPagar tem a seguinte Association:

     [Association(OneToOne,'ID_TIPO_CONTA','TIPO_CONTA','ID')]
     property TIPO_CONTA: TModelTIPOCONTA read FTIPOCONTA write FTIPOCONTA;

    Acontece que se eu deixar essa duas linhas descomentadas ele dá erro de access violation que eu ainda não entendi o porque, o erro dá dentro da classe ormbr.dataset.bind
    linhha 330 dentro da procedure TBindDataSet.SetFieldToProperty(ADataSet: TDataSet; AObject: TObject); exatamente em   LColumns := TMappingExplorer.GetInstance.GetMappingColumn(AObject.ClassType);
    o engraçado que se eu habilitar as duas linhas ele fica passando várias vezes até dar o erro.


    Banco Firebird 3.0
    Alguma luz?

Inserido por: Pechoto - 15-05-2018, 07:19 PM - Fórum: Como Usar - Respostas (10)
  • Olá galera do ORMBr. Primeiramente parabéns ao Isaque e a todos os envolvidos pelo excelente projeto.

    Tenho duas tabelas sendo PESSOA e CIDADE, conforme resumo abaixo:


    PESSOA      | CIDADE
    ================
    ID              | ID
    NOME         | NOME
    ID_CIDADE | UF

    Estou tentando fazer uma JoinColumn (PESSOA.ID_CIDADE > CIDADE.ID), para que no momento da consulta o ORM traga o nome da cidade (CIDADE.NOME) e a UF (CIDADE.UF) de cada registro de pessoa, porém não estou conseguindo trazer o nome da cidade, somente a UF.

    Pode ser pelo fato de que a coluna tenha o mesmo nome (NOME) nas duas tabelas?

    Código que estou usando na classe TPessoaVO:

        [Restrictions([NoInsert, NoUpdate])]
        [Column('NOME', ftString, 100)]
        [JoinColumn('ID_CIDADE', 'CIDADE', 'ID', 'NOME', LeftJoin)]
        [Dictionary('Cidade')]
        property CidadeNome: string index 1 read FCidadeNome write FCidadeNome;

    Eu até tentei trocar [Column('NOME', ftString, 100)] por [Column('NOME_CIDADE', ftString, 100)], porém recebo o erro: "Field 'NOME_CIDADE' not found".

Bem Vindo, Visitante
[-]
  • Você tem que se registrar antes, para poder colocar mensagens no Fórum.
Pesquisar Nos Fóruns
[-]
Estatísticas do Fórum
[-]
usuários Online
[-]
  • Está de momento 1 usuário online
    0 Membro(s) | 1 Visitante(s)
Últimos Tópicos
[-]