Fabiana, a unica coisa que pode dar problema (pelo que vi) ai são as 
aspas...
'' dentro de string fica meio complicado de vez em quando. Tente colocar
'''''' para representar '' dentro da string.

[]s


>From: "Fabiana" <[EMAIL PROTECTED]>
>Reply-To: delphi-br@yahoogrupos.com.br
>To: <delphi-br@yahoogrupos.com.br>
>Subject: Re: [delphi-br] Re: Duvida sobre SQL no Delphi
>Date: Thu, 28 Jun 2007 08:53:59 -0300
>
>Carlos, Bom Dia
>
>     o codigo completo e esse aqui:
>
>  with DModulo.qryVendas do
>  begin
>    Close;
>    SQL.Clear;
>    SQL.Add('Select');
>    SQL.Add('VendasEspec.TipoRec as TipoRec,');
>    SQL.Add('VendasEspec.NumeroRec as NumeroRec,');
>    SQL.Add('VendasEspec.DataRec as DataRec,');
>    SQL.Add('VendasEspec.UFCRM as UFCRM,');
>    SQL.Add('VendasEspec.CRM as CRM,');
>    SQL.Add('VendasEspec.TipoCRM as TipoCRM,');
>    SQL.Add('VendasEspec.TipoDoc as TipoDoc,');
>    SQL.Add('VendasEspec.NumeroDoc as NumeroDoc,');
>    SQL.Add('VendasEspec.OrgaoExp as OrgaoExp,');
>    SQL.Add('VendasEspec.UFDoc as UFDoc,');
>    SQL.Add('VendasEspec.NomeComp as NomeComp,');
>    SQL.Add('VendasEspec.NomeMed as NomeMed,');
>    SQL.Add('VendasEspec.TipoOp as TipoOp,');
>    SQL.Add('VendasEspec.DescProd as DescProd,');
>    SQL.Add('VendasEspec.Quantidade as Quantidade,');
>    SQL.Add('VendasEspec.DataVenda as DataVenda,');
>    SQL.Add('VendasEspec.Lote as Lote,');
>    SQL.Add('VendasEspec.RegMs as RegMS');
>    SQL.Add('from');
>    SQL.Add('vendasEspec');
>    SQL.Add('UNION ALL');
>    SQL.Add('select');
>    SQL.Add('CAST('' AS Char(1)) as TipoRec,');
>    SQL.Add('CAST('' AS VarChar(15)) as NumeroRec,');
>    SQL.Add('CAST('' AS Date) as DataRec,');
>    SQL.Add('CAST('' AS Char(2)) as UFCRM,');
>    SQL.Add('CAST('' AS VarChar(10)) as CRM,');
>    SQL.Add('CAST('' AS Char(4)) as TipoCRM,');
>    SQL.Add('CAST('' AS Char(6)) as TipoDoc,');
>    SQL.Add('Clientes.Inscr_Est as NumeroDoc,');
>    SQL.Add('CAST('' AS Char(6)) as OrgaoExp,');
>    SQL.Add('CAST('' AS Char(2)) as UFDoc,');}
>    SQL.Add('Vendas.cliente as NomeComp,');
>    SQL.Add('CAST('' AS VarChar(50)) as NomeMed,');
>    SQL.Add('Vendas.operacao as TipoOp,');
>    SQL.Add('Vendas.DescProd as DescProd,');
>    SQL.Add('Vendas.quantidade as Quantidade,');
>    SQL.Add('Vendas.data as DataVenda,');
>    SQL.Add('Vendas.identifica as Lote,');
>    SQL.Add('Codforn.codfornec as RegMS');
>    SQL.Add('from');
>    SQL.Add('Vendas');
>    SQL.Add('LEFT JOIN');
>    SQL.Add('Clientes ON vendas.CGC = clientes.CGC');
>    SQL.Add('LEFT JOIN');
>    SQL.Add('Codforn ON vendas.codprod = codforn.codelf');
>    SQL.Add('where');
>    SQL.Add('(vendas.data >= :pDataini1) and (vendas.data <= :pDatafim1) 
>and');
>    SQL.Add('(vendas.grupoProd = :pGrupo1) and (vendas.operacao = :tipoOp1) 
>or');
>    SQL.Add('(vendas.data >= :pDataini2) and (vendas.data <= :pDatafim2) 
>and');
>    SQL.Add('(vendas.grupoProd = :pGrupo2) and (vendas.operacao = :tipoOp2) 
>or');
>    SQL.Add('(vendas.data >= :pDataini3) and (vendas.data <= :pDatafim3) 
>and');
>    SQL.Add('(vendas.grupoProd = :pGrupo3) and (vendas.operacao = :tipoOp3) 
>or');
>    SQL.Add('(vendas.data >= :pDataini4) and (vendas.data <= :pDatafim4) 
>and');
>    SQL.Add('(vendas.grupoProd = :pGrupo4) and (vendas.operacao = 
>:tipoOp4)');
>    SQL.Add('Order by');
>    SQL.Add('descprod,datavenda');
>
>    Params[0].AsDate:= dtpInicial.Date;
>    Params[1].AsDate:= dtpFinal.Date;
>    Params[2].AsString := '1';
>    Params[3].AsString := 'V';
>    Params[4].AsDate:= dtpInicial.Date;
>    Params[5].AsDate:= dtpFinal.Date;
>    Params[6].AsString := '2';
>    Params[7].AsString := 'V';
>    Params[8].AsDate:= dtpInicial.Date;
>    Params[9].AsDate:= dtpFinal.Date;
>    Params[10].AsString := '3';
>    Params[11].AsString := 'V';
>    Params[12].AsDate:= dtpInicial.Date;
>    Params[13].AsDate:= dtpFinal.Date;
>    Params[14].AsString := '4';
>    Params[15].AsString := 'V';
>    Open;
>  end;
>
>estou usando o UNION pois os tem campos em uma tabela que tem na outra e 
>preciso fazer com os 2 se tornem um so campo.
>
>Obrigado desde de já
>Fabiana
>   ----- Original Message -----
>   From: Carlos
>   To: delphi-br@yahoogrupos.com.br
>   Sent: Wednesday, June 27, 2007 7:35 PM
>   Subject: [delphi-br] Re: Duvida sobre SQL no Delphi
>
>
>   Boa noite.
>   se esta for a rotina que está tentando implantar, vc está apagando a
>   sentença Sql e não a está escrevendo novamente, pois quando dá um
>   "qryvendas.sql.clear;" vc apaga o conteudo da query.
>   logo vc deve fazer:
>   qryvendas.sql.close;
>   qryvendas.sql.clear;
>   qryvendas.sql.add(select nome_dos_campos from tabela(s));
>   qryvendas.sql.add(vendasespec.TipoRec as TipoRec);
>   se vc postou o código completo, creio que isto sana o problema. Tenta 
>ai.
>   Mas pq vc está usando uma UNION e não um JOIN?
>   Fraterno abraço,
>   Carlos
>
>   --- Em delphi-br@yahoogrupos.com.br, "Fabiana" <[EMAIL PROTECTED]> escreveu
>   >
>   > Boa Tarde pessoal
>   >
>   > Estou fazendo uma query e estou usando um union e há alguns campos
>   que existem em uma tabela e na outra, pelo SQL eu estou usando CAST(''
>   as char(1)) as TipoRec) e funciona beleza, só que quando vou usar isso
>   do Delphi para passar as informações para o Tquery estou fazendo assim:
>   > qryvendas.sql.close;
>   > qryvendas.sql.clear;
>   > qryvendas.sql.add(vendasespec.TipoRec as TipoRec);
>   > coloco os outros campos desta tabela e depois
>   > qryvendas.sql.add(Union);
>   > qryvendas.sql.add(CAST('' as char(1)) as TipoRec);
>   > coloco os outros campos desta tabela
>   > qryvendas.sql.open;
>   >
>   > só que quando vou executar aparece o erro de 'List index out of
>   Bounds(0);
>   >
>   > O que eu tenho que usar no lugar deste CAST já que no SQL ele
>   funciona criando o campo para mim vazio?
>   >
>   > Obrigado desde de já
>   >
>   > Fabiana
>   >
>   > [As partes desta mensagem que não continham texto foram removidas]
>   >
>
>
>
>
>
>[As partes desta mensagem que não continham texto foram removidas]
>
>
>
>--
><<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
>
>Links do Yahoo! Grupos
>
>

_________________________________________________________________
Descubra como mandar Torpedos SMS do seu Messenger para o celular dos seus 
amigos. http://mobile.msn.com/

Responder a