Fórum Mais duvidas sobre clientdataset #310073
20/01/2006
0
Mrmarcelojr
Curtir tópico
+ 0Posts
21/01/2006
Gpfranca
Pelo que eu entendi um INNER JOIN na sua instrução resolverá seu problema.
Gostei + 0
23/01/2006
Mrmarcelojr
Resolveria, porém, as tabelas de Serviço e de Produtos estão em arquivos separados, então eu não consigui fazer uma instrução chamando bases diferentes, por isso a nescessidade de se utilizar campo lookup do ClientDataSet.
Então criei dois camposo Lookup, Descr1(que traz a descrição do produto) e descr2(que traz a descrição do serviço.
Gostaria de mesclar estas 2 colunas, como se fosse um COALESCE.
ps.: Teoricamente não adianta usar nenhuma instrução SQL, deverá ser uma função própria do CDS.....Teoricamente, pois se existira alguma forma de se realizar uma consulta em arquivos diferentes...pode manda bala.........Utilizo FB
Gostei + 0
23/01/2006
Aroldo Zanela
Coloque a DDL (Estrutura das tabelas) para um exemplo mais pragmático. A princípio, basta utilizar UNION ALL. Exemplo hipotético:
SELECT PRO_ID AS CODIGO, PRO_DESCRICAO AS DESCRICAO FROM PRODUTOS UNION ALL SELECT SER_ID AS CODIGO, SER_DESCRICAO AS DESCRICAO FROM SERVICOES
Gostei + 0
23/01/2006
Mrmarcelojr
Coloque a DDL (Estrutura das tabelas) para um exemplo mais pragmático. A princípio, basta utilizar UNION ALL. Exemplo hipotético:
SELECT PRO_ID AS CODIGO, PRO_DESCRICAO AS DESCRICAO FROM PRODUTOS UNION ALL SELECT SER_ID AS CODIGO, SER_DESCRICAO AS DESCRICAO FROM SERVICOES
Muito obrigado pela ajuda, mas as tabelas estão em arquivos distintos. A tabela de produtos (PROD) esta em 1.FDB, e a de serviços (SERV) está em mdb.FDB. Então eu não consigo fazer isto com uma consulta SQL, pois estou utilizando 2 conexões, eu DataSet está setado para SQLConn1, e o otro em SQLConn2. Por isso a nescessidade de utilizar as funções do próprio CDS.
Gostei + 0
23/01/2006
Aroldo Zanela
Entendi. Bem, desta forma eu acho que seria mais simples popular um CDS em nível de código. Exemplo:
while not PRODUTOS.eof do begin cds.AppendRecord([PRODUTOSpro_id.Value, PRODUTOSpro_descricao.value]); PRODUTOS.next; end; while not SERVICOS.eof do begin cds.AppendRecord([SERVICOSser_id.Value, SERVICOSser_descricao.value]); SERVICOS.next; end;
Gostei + 0
23/01/2006
Thomaz_prg
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)