Jump to content


- - - - -

Concatenar Campos Sql-server [Resolvido]










4 respostas a este tópico

#1 ilanocf

    Membro - Senior 3

  • Membros
  • PipPipPipPipPipPipPipPipPip
  • 1579 posts
  • Sexo:Masculino
  • Estado:Other Countries

Adicionado 07 March 2006 - 02:14 PM

Olá pessoal,

Como faço para concatenar dois campos de uma base de dados SQL-Server 2005 usando Delphi 7? Tentei das seguintes formas:

Quote

With Cons_Autores Do
Begin
Close;
SQL.Clear;
SQL.Add('SELECT UltimoNome, RestoDoNome, UltimoNome, ", ", RestoDoNome AS NomeCompleto');
SQL.Add('FROM TB_Autores');
SQL.Add('ORDER BY NomeCompleto');
Open;
End;


Quote

With Cons_Autores Do
Begin
Close;
SQL.Clear;
SQL.Add('SELECT UltimoNome, RestoDoNome, (UltimoNome + ", " + RestoDoNome) AS NomeCompleto');
SQL.Add('FROM TB_Autores');
SQL.Add('ORDER BY NomeCompleto');
Open;
End;


Quote

With Cons_Autores Do
Begin
Close;
SQL.Clear;
SQL.Add('SELECT UltimoNome, RestoDoNome, UltimoNome || ", " || RestoDoNome AS NomeCompleto');
SQL.Add('FROM TB_Autores');
SQL.Add('ORDER BY NomeCompleto');
Open;
End;

Mas não está dando certo. Nos dois primeiros casos surge a mensagem:
[Microsoft][ODBC SQL Server Drive][SQL Server]Invalid column name','

E no terceiro caso, a mensagem:
[Microsoft][ODBC SQL Server Drive][SQL Server]Line 1: Incorrect syntax near '|'


Como posso resolver isso?

Grato,

Ilano.

#2 Rafael

    Membro - Avançado 2

  • Coordenador
  • 2201 posts
  • Sexo:Masculino
  • Estado:Santa Catarina

Adicionado 07 March 2006 - 02:40 PM

Tenta assim cara:

...
Add('SELECT UltimoNome, RestoDoNome, UltimoNome + '','' + RestoDoNome AS NomeCompleto');
...

#3 Aroldo Zanela

    Membro - Top

  • (*)Insigne
  • 3475 posts
  • Sexo:Masculino
  • Estado:Distrito Federal

Adicionado 07 March 2006 - 02:42 PM

Colega,

Você não pode passar aspas duplas que o SQL Server entende como uma literal (nome de campo).

SQL.Add('SELECT UltimoNome, RestoDoNome, (UltimoNome + QuotedStr(', ')+ RestoDoNome) AS NomeCompleto');


#4 ilanocf

    Membro - Senior 3

  • Membros
  • PipPipPipPipPipPipPipPipPip
  • 1579 posts
  • Sexo:Masculino
  • Estado:Other Countries

Adicionado 07 March 2006 - 03:00 PM

Rafael, deu certo o seu código. Valeu!

Aroldo, tentei fazer da sua maneira tb, mas quando mandei compilar o programa surgiram os erros?

Quote

[Error] Unit1.pas(458): Too many actual parameters
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'


#5 Aroldo Zanela

    Membro - Top

  • (*)Insigne
  • 3475 posts
  • Sexo:Masculino
  • Estado:Distrito Federal

Adicionado 07 March 2006 - 03:30 PM

Colega,

Beleza, já está resolvido.

Faltou fechar as aspas simples:

SQL.Add('SELECT UltimoNome, RestoDoNome, (UltimoNome' + QuotedStr(', ') + ' RestoDoNome) AS NomeCompleto');






1 usuário(s) esta(ão) lendo este tópico

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)