Rest e Json
Olá pessoal, muito boa a edição 119 da revista Clube Delphi:
Estou com um problema(Coluna do Rodrigo Carreiro Mourão):
No trecho de código:
function TCliente.GetCustomersJson(OrderBy: string): TJSONArray;
var
Sql: TStringBuilder;
Reader: TDBXReader;
Obj: TJSONObject;
I: Integer;
begin
Result := TJSONArray.Create;
Sql := TStringBuilder.Create;
Sql.Append('Select Cust_no, Customer, Address_Line1, ');
Sql.Append(' City, Country, Phone_no From Customer ');
if OrderBy <> EmptyStr then Sql.Append(' Order by '+OrderBy);
DataSet.Text := Sql.ToString;
Reader := DataSet.ExecuteQuery;
Obj := TJSONObject.Create;
for I := 0 to Reader.ColumnCount - 1 do
begin
Obj.AddPair(Reader.ValueType[I].Name,TJSONString.Create(Reader.ValueType[I].Name));
end;
Result.AddElement(Obj);
while Reader.Next do
begin
Obj := TJSONObject.Create;
Obj.AddPair('Codigo', TJSONNumber.Create(Reader.Value[0].GetInt32));
Obj.AddPair('Nome', TJSONString.Create(Reader.Value[1].GetAnsiString));
Obj.AddPair('Endereco', TJSONString.Create(Reader.Value[2].GetAnsiString));
Obj.AddPair('Cidade', TJSONString.Create(Reader.Value[3].GetAnsiString));
Obj.AddPair('Pais', TJSONString.Create(Reader.Value[4].GetAnsiString));
Obj.AddPair('Telefone', TJSONString.Create(Reader.Value[5].GetAnsiString));
Result.AddElement(Obj);
end;
end;
Como eu consigo inserir campos do tipo: -Double (exemplo salary do EMPLOYEE.FDB) -Data Obrigado:
var
Sql: TStringBuilder;
Reader: TDBXReader;
Obj: TJSONObject;
I: Integer;
begin
Result := TJSONArray.Create;
Sql := TStringBuilder.Create;
Sql.Append('Select Cust_no, Customer, Address_Line1, ');
Sql.Append(' City, Country, Phone_no From Customer ');
if OrderBy <> EmptyStr then Sql.Append(' Order by '+OrderBy);
DataSet.Text := Sql.ToString;
Reader := DataSet.ExecuteQuery;
Obj := TJSONObject.Create;
for I := 0 to Reader.ColumnCount - 1 do
begin
Obj.AddPair(Reader.ValueType[I].Name,TJSONString.Create(Reader.ValueType[I].Name));
end;
Result.AddElement(Obj);
while Reader.Next do
begin
Obj := TJSONObject.Create;
Obj.AddPair('Codigo', TJSONNumber.Create(Reader.Value[0].GetInt32));
Obj.AddPair('Nome', TJSONString.Create(Reader.Value[1].GetAnsiString));
Obj.AddPair('Endereco', TJSONString.Create(Reader.Value[2].GetAnsiString));
Obj.AddPair('Cidade', TJSONString.Create(Reader.Value[3].GetAnsiString));
Obj.AddPair('Pais', TJSONString.Create(Reader.Value[4].GetAnsiString));
Obj.AddPair('Telefone', TJSONString.Create(Reader.Value[5].GetAnsiString));
Result.AddElement(Obj);
end;
end;
Como eu consigo inserir campos do tipo: -Double (exemplo salary do EMPLOYEE.FDB) -Data Obrigado:
Zilon Maciel
Curtidas 0
Respostas
Marco Salles
29/08/2010
ola zilon de Quadros Maciel vc mandou um email para o autor ??? Alguns constumam reportar alguma
dúvida a mais
Mas de qualquer modo acredito que o que vc quer
Como eu consigo inserir campos do tipo:
-Double (exemplo salary do EMPLOYEE.FDB)
obj.AddPair('NomeDoCampo',TJSONPair.Create(reader.Value[6].GetDouble);
Como eu consigo inserir campos do tipo:
-Data
obj.AddPair('NomeDoCampo',TJSONValue.Create(reader.Value[].GetDate);
GOSTEI 0
Zilon Maciel
29/08/2010
Marco, no artigo da revista o autor do artigo (Rodrigo), mostra como desenvolver um servidor Delphi,
cliente Delphi e cliente não Delphi.
No exemplo ele mostra como desenvolver cliente HTML. Perfeito.
O que acontece, é que com campos Integer e String a página HTML mostra normalmente, só não estou
conseguindo mostrar outros tipos de campos como Double (numeric 15,2) ou Date. Obrigado pela força.
GOSTEI 0
Marco Salles
29/08/2010
Marco, no artigo da revista o autor do artigo (Rodrigo), mostra como desenvolver um servidor Delphi,
cliente Delphi e cliente não Delphi.
No exemplo ele mostra como desenvolver cliente HTML. Perfeito.
O que acontece, é que com campos Integer e String a página HTML mostra normalmente, só não estou
conseguindo mostrar outros tipos de campos como Double (numeric 15,2) ou Date. Obrigado pela força.
hummmm... Vc diz não esta conseguindo
Como vc esta fazendo ???
Como vc esta gerando o DBXReader , < esquecendo clientes Json por enquanto >
GOSTEI 0