Consegui trazer os dados usando este video aula
Peguei a lista dos dados do banco firebird e esta tudo num listview do android.
Até na parte de trazer a lista de todos os dados da tabela no android esta trazendo, mas preciso fazer o mesmo num edittext digitar um codigo no edittext e neste mesmo edittext retornar o nome.
Tenho uma tabela chamada clientes, e nela tenho os campos CODIGO e NOME
Se algem puder me ajudar a trazer o resultado dentro do edittext do android…
No delphi ja fiz o método de busca pelo ID
function TServerMethods1.GetDados_Clientes(Codigo: string; out Erro: string): TDataSet;
begin
with CDS_Clientes do
begin
try
Close;
CommandText := ' SELECT CAST(CODIGO AS VARCHAR(30))AS CODIGO, NOME '+
' FROM CLIENTES '+
' WHERE CODIGO = :PCODIGO ';
Params.ParamByName('PCODIGO ').AsString := Codigo;
Open;
Result := CDS_Clientes;
except on E:Exception do
Erro := E.Message;
end;
end;
end;
e no android ficou assim
[code] public static class GetDados_ClientesReturns {
public String Erro;
public TDataSet returnValue;
}
public GetDados_ClientesReturns GetDados_Clientes(String Codigo) throws DBXException {
DSRESTCommand cmd = getConnection().CreateCommand();
cmd.setRequestType(DSHTTPRequestType.GET);
cmd.setText(“TServerMethods1.GetDados_Clientes”);
cmd.prepare(get_TServerMethods1_GetDados_Clientes_Metadata());
cmd.getParameter(0).getValue().SetAsString(Codigo);
getConnection().execute(cmd);
GetDados_ClientesReturns ret = new GetDados_ClientesReturns();
ret.Erro = cmd.getParameter(1).getValue().GetAsString();
ret.returnValue = (TDataSet)cmd.getParameter(2).getValue().GetAsTable();
return ret;
}
private DSRESTParameterMetaData[] TServerMethods1_InsertDados_Clientes_Metadata;
private DSRESTParameterMetaData[] get_TServerMethods1_InsertDados_Clientes_Metadata() {
if (TServerMethods1_InsertDados_Clientes_Metadata == null) {
TServerMethods1_InsertDados_Clientes_Metadata = new DSRESTParameterMetaData[]{
new DSRESTParameterMetaData("Nome", DSRESTParamDirection.Input, DBXDataTypes.WideStringType, "string"),
new DSRESTParameterMetaData("Erro", DSRESTParamDirection.Output, DBXDataTypes.WideStringType, "string"),
new DSRESTParameterMetaData("", DSRESTParamDirection.ReturnValue, DBXDataTypes.BooleanType, "Boolean"),
};
}
return TServerMethods1_InsertDados_Clientes_Metadata;
}
[/code]
Mais não sei como chamar no android
Cheguei a montar o codigo, mais não esta correto
[code]private void pesquisar() {
dialog = progressDialog.show(VendaClienteActivity.this, “Aguarde…”,
“Pesquisando registros”);
new Thread() {
@Override
public void run() {
DSRESTConnection conn = getConnection();
TServerMethods1 serv = new TServerMethods1(conn);
GetDados_ClientesReturns gc;
TDataSet ds = null;
try {
String Codigo;
Codigo = edtCliente.getText().toString();
gc = serv.GetDados_Clientes(Codigo);
//carrega o edit com o resultado do select
edtCliente.setText(ds.getValue("nome").GetAsString());
finalizaDialogo(false, "");
} catch (Exception e){
finalizaDialogo(true, e.toString());
}
}
}.start();
}
private DSRESTConnection getConnection() {
DSRESTConnection conn = new DSRESTConnection();
conn.setHost(ip);
conn.setPort(1032); //porta
return conn;
}
private void finalizaDialogo(final boolean temErro, final String msg) {
handler.post(new Runnable() {
@Override
public void run() {
if (temErro)
Toast.makeText(VendaClienteActivity.this, msg, Toast.LENGTH_LONG).show();
else
AtualizarTela();
//finaliar o dialogo
dialog.dismiss();
}
});
}
private void AtualizarTela() {
//
}
[/code]
Minha dificuldade é passar o parametro do codigo para buscar o ID do cliente e retornar o nome do cliente no edittext.
Obrigado a quem me ajudar.