ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

O que há de errado com este codigo ?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Mobile com Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Seingalt
Novato
Novato


Registrado: Quarta-Feira, 24 de Novembro de 2010
Mensagens: 26

MensagemEnviada: Qui Abr 28, 2016 1:59 pm    Assunto: O que há de errado com este codigo ? Responder com Citação

Boa tarde pessoal, quanto tempo não passo por aqui Surprised
Bem sabendo que o Delphi evoluiu voltei a trabalhar com ele.
Agora podemos criar app mobile, bacana demais uma grande evolução.
Mas...
Estou a perceber que falta muito ainda para chegar lá..vejo videos e nas maos dos profissionais Embarcaderos parece facil ligar ao banco de dados e deixa-lo funcionando certinho..vixi....tranquilo...mas só parece porque na pratica estou tento enormes dificuldades.
Para recorrer ao forum estou com, ou melhor cheguei em um limite de conhecimento, de tentativas, de varias pesquisas, pessoal preciso de ajuda.
O que há de errado com este codigo ?

Estou compilando ele direto no celular Moto G1, ele abre a aplicação beleza, mas nao aparece nada nos edits !!! Porque ??

Código:

unit UDroid;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf,
  FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async,
  FireDAC.Phys,  FireDAC.Stan.Param,
  FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FireDAC.FMXUI.Wait,
  FireDAC.Comp.UI, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client,
  FMX.StdCtrls, FMX.Edit, FMX.Controls.Presentation, Datasnap.Provider,
  Data.DbxSqlite, Data.FMTBcd, Data.SqlExpr, Data.Bind.EngExt,
  Fmx.Bind.DBEngExt, System.Rtti, System.Bindings.Outputs, Fmx.Bind.Editors,
  Data.Bind.Components, Data.Bind.DBScope, FMX.ListView.Types, FMX.ListView,
  FireDAC.Stan.ExprFuncs, FireDAC.Phys.SQLiteDef, FireDAC.Phys.SQLite;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edtnome: TEdit;
    edtendereco: TEdit;
    edtidade: TEdit;
    Button1: TButton;
    Button2: TButton;


    FDGUIxWaitCursor1: TFDGUIxWaitCursor;
    ListView1: TListView;
    FDPhysSQLiteDriverLink1: TFDPhysSQLiteDriverLink;
    qrescolhidos: TFDQuery;
    BancoConnection: TFDConnection;
    DataSetProvider1: TDataSetProvider;
    BindSourceDB1: TBindSourceDB;
    bind: TBindingsList;
    LinkControlToField1: TLinkControlToField;
    LinkControlToField2: TLinkControlToField;
    LinkControlToField3: TLinkControlToField;
    qrescolhidosNome: TStringField;
    qrescolhidosEndereco: TStringField;
    qrescolhidosIdade: TIntegerField;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);

    procedure BancoConnectionBeforeConnect(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

//FMX.Platform,FMX.VirtualKeyboard;
  uses System.IOUtils;
{$R *.fmx}
{$R *.iPhone4in.fmx IOS}
{$R *.NmXhdpiPh.fmx ANDROID}
{$R *.SmXhdpiPh.fmx ANDROID}



procedure TForm1.Button1Click(Sender: TObject);
begin
  BancoConnection.Connected :=true;
  qrescolhidos.Active:=true;

  qrescolhidos.Close;

try
 // qrescolhidos.ExecSQL();
  qrescolhidos.Open;

{
    Ja tentei

        edtnome.text:=qrescolhidos.ParamByName('Nome').AsString;
        edtendereco.text:=qrescolhidos.ParamByName('Endereco').AsString;
        edtidade.text:=qrescolhidos.ParamByName('Idade').AsInteger;

Quando tento desse jeito acima,ele me mostra uma mensagem no celular:
"Param ('Nome') not found.


}
 
  edtnome.Text:= qrescolhidosNome.AsString; 
  edtendereco.Text:=    qrescolhidosEndereco.AsString;
  edtidade.Text:=inttostr(qrescolhidosIdade.AsInteger);

except on e: Exception do

    showmessage('Erro ao Conectar'+e.message);
end;


    qrescolhidos.Close;


end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;

procedure TForm1.BancoConnectionBeforeConnect(Sender: TObject);
begin

{$IF DEFINED(iOS) or DEFINED(ANDROID)}
  BancoConnection.Params.Values['ColumnMetadataSupported'] := 'False';
  BancoConnection.Params.Values['Database'] :=TPath.Combine(TPath.GetDocumentsPath, 'Banco.db');

//Test1Connection.Params.Values['Database']:=GetHomePath + PathDelim + 'test1.db3';
{$ENDIF}
end;

end.


Aguem me ajuda por favor !!!
Tentei varias formas, teve erro que nao existia campo nome na tabela,trabalhei com DBX .. enfim...

Aguardo resposta obrigado...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
walsh
Novato
Novato


Registrado: Domingo, 28 de Dezembro de 2014
Mensagens: 65

MensagemEnviada: Qui Abr 28, 2016 11:49 pm    Assunto: Responder com Citação

Boa noite colega!

Pelo que percebi vc está usando um banco interno SQLite, isso?

O banco vc cadastrou algumas informações para teste manualmente? Você está atribuindo para os dbedits receber os valores dos campos manualmente mas pq?

É só ligar os campos com o livebindings que ele faz o resto!

abraço
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Seingalt
Novato
Novato


Registrado: Quarta-Feira, 24 de Novembro de 2010
Mensagens: 26

MensagemEnviada: Sáb Abr 30, 2016 4:55 pm    Assunto: Responder com Citação

Walsh obrigado por ter respondido!!!

Pelo que percebi vc está usando um banco interno SQLite, isso?
R: Sim, estou usando banco interno.


O banco vc cadastrou algumas informações para teste manualmente?
R: Sim acrecentei algumas informações, tipo nome , endereco e idade da pessoa.

Você está atribuindo para os dbedits receber os valores dos campos manualmente mas pq?
R:Para saber se tenho controle sobre o banco,ativar a hora que quiser e desativar tambem quando eu quiser.

Clicando no botão, conecta ao banco abre ele e mostra os dados nos edits.

Sim eu fiz teste ligando com o bind, mostrou os dados corretamentes mas eu quero saber se tenho este controle, de conectar a hora que quiser, ativar ou desativa-lo, entendeu.

Quero saber o que está errado neste codigo, o porque não posso fazer assim ? Porque assim não funciona ?

Pensa comigo, eu não consigo ativar e desativar o banco a hora que quiser mas me permite adicionar dados ??? Rssss...entendeu !!!

Essa seria uma aplicação teste para futuramente tentar conectar remotamente.

Mas descobri nao tenho certeza que o android não permite conexao remota com o banco.

Para isso você tem que salvar em um arquivo os dados e depois mandar para o servidor e tratar isso...Mas isso é mais adiante.

O que quero fazer agora é esse pequeno teste....
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Seingalt
Novato
Novato


Registrado: Quarta-Feira, 24 de Novembro de 2010
Mensagens: 26

MensagemEnviada: Sáb Abr 30, 2016 8:05 pm    Assunto: Responder com Citação

Consegui conectar !!!!!

Coloquei a dll do sqlite na mesma pasta do projeto, coloquei ela no Debug e tambem especifiquei no VendorLib do componente FDPhysSQLiteDriverLink1.

Olha não sei se isso resolveu, mas eu acho q o pulo do gato pode estar no codigo,bom vou fazer os testes aqui e qualquer coisa eu posto aqui, por enquanto obrigado pessoal !!!!

Sucesso pra vocês !!!!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
walsh
Novato
Novato


Registrado: Domingo, 28 de Dezembro de 2014
Mensagens: 65

MensagemEnviada: Dom Mai 01, 2016 1:20 am    Assunto: Responder com Citação

Boa noite amigo!

sobre colocar a DLL na mesma pasta isso é verdade, é necessário fazer isso!

Copiei da sua mensagem anterior:

"Essa seria uma aplicação teste para futuramente tentar conectar remotamente.

Mas descobri nao tenho certeza que o android não permite conexao remota com o banco. "

Resposta: sim amigo, é possível conectar remotamente em um banco externo, eu mesmo utilizo isso. Tenho um APP no meu celular que se conecta num servidor DataSnap que é ligado no banco desse servidor. Claro que tem de usar o wifi pois no 3G fica lento, mas funciona tranquilamente!

Abraço
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Mobile com Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB