Comando INSERT em mais de uma linha!?!?

02/12/2003

0

Pessoal,

em um cadastro via SQL, como procedo para ter meu comando insert em mais de uma linha (continuacao do comando uma linha abaixo da outra) para evitar que a linha de comando seja muito extensa??? Imaginem se possuo o cadastro de 50 campos, isso se torna impossível executar em apenas uma única linha.. muitos caracteres..

como procedo ? faço minha inclusao da seguinte forma....

Query1.Active := False;
Query1.SQL.Clear;
Query1.Sql.Add(´insert into tabela1 (nome, cidade, endereco, .... values (´+´´´´+editNome.text+´´´´+´,´+´´´´+editCidade.text+´´´´+´,´ .....)

uso o q para continuar na linha de baixo ????


Responder

Post mais votado

03/12/2003

Não se preocupe, não há problema ao utilizar comandos em mais de uma linha em SQL. Você pode tranquilamente usar:

Query1.Active := False; 
Query1.SQL.Clear; 
Query1.Sql.Add(´insert into tabela1 (nome, cidade, endereco, ´);
Query1.Sql.Add(´campo2, campo3, campo 4, .... )´);
Query1.Sql.Add(´values (´ + ´´´´ + editNome.text + ´´´´, ... ); 


Pode quebrar o insert em qq canto, pq, assim como em delphi, tanto faz se você escrever

if (i > 10) then
begin
  doSomething;
  doSomethingelse;
end
else
begin
  doThis;
  doThat;
end


e

if (i > 10) then begin doSomething; doSomethingelse; end
else begin doThis; doThat; end


Pq, no final das contas, o compilador não vai se importar com quebras de linha nem nada, o que realmente importa é se a sintaxe está correta.

Espero ter ajudado! :) Abraços, dEUS.


Deus

Deus
Responder

Mais Posts

03/12/2003

Aroldo Zanela

Colega,

Na prática, você poderia fazer da sequinte forma:

Query1.Active := False;
Query1.SQL.Clear;
Query1.Sql.Add(´insert into tabela1 (nome, cidade,´+
´endereco, .... values (´+´´´´+editNome.text+´´´´+´,´+´´´´+editCidade.text+´´´´+´,´ .....)


Ou seja, fechar o delimitador ´´´ e adicionar um operador de concatenação ´+´, passar para o outra linha e abrir o delimitador ´´´.
Mas a utilização do método ADD vai facilitar a leitura do fonte e evitar problema de estouro de string.


Responder

04/12/2003

Ce

OK Aroldo !! Funcionou 100¬ .. obrigado..
mas.. e se tiver um campo memo ? como faço para inserir os dados do memo no meu insert ? Tenho declarado o Memo na tabela como tipo TEXT .. mas e no form, como faço para gravar ?


[quote:f42d8e2c0c=´Aroldo Zanela´]Colega,

Na prática, você poderia fazer da sequinte forma:

Query1.Active := False;
Query1.SQL.Clear;
Query1.Sql.Add(´insert into tabela1 (nome, cidade,´+
´endereco, .... values (´+´´´´+editNome.text+´´´´+´,´+´´´´+editCidade.text+´´´´+´,´ .....)


Ou seja, fechar o delimitador ´´´ e adicionar um operador de concatenação ´+´, passar para o outra linha e abrir o delimitador ´´´.
Mas a utilização do método ADD vai facilitar a leitura do fonte e evitar problema de estouro de string.[/quote:f42d8e2c0c]


Responder

05/12/2003

Aroldo Zanela

Colega,

Mais fácil ainda, veja o exemplo:

  Query1.SQL.Text := Memo1.Lines.Text;



Responder

05/12/2003

Cristiane.spl

tente assim
WITH DM.qrytabela1 DO
BEGIN
CLOSE;
SelectSQL.Clear;
SelectSQL.Add(´INSERT INTO tabela1´);
SelectSQL.Add(´(CAMPO1,CAMPO2,CAMPO3)´);
SelectSQL.Add(´VALUES´);
SelectSQL.Add(´(´´´+edtCAMPO1+´´´,´);
SelectSQL.Add(´´´´+edtCAMPO2+´´´,´);
SelectSQL.Add(´´´´+edtCAMPO3+´´´)´);
ExecSQL;
END;


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar