Fórum insert com select #326963
08/08/2006
0
preciso fazer um [b:979e3e449d]insert[/b:979e3e449d] com [b:979e3e449d]select[/b:979e3e449d], só que a tabela do Insert está em um banco de dados em [b:979e3e449d]SQL Server[/b:979e3e449d] e a tabela do select está em um Banco de Dados [b:979e3e449d]Firebird[/b:979e3e449d],
[color=red:979e3e449d][b:979e3e449d]TEM COMO FAZER ISSO ?[/b:979e3e449d][/color:979e3e449d]
Fabiano Góes
Curtir tópico
+ 0Posts
08/08/2006
Nightshade
com o componente ibquery da IBX ou com o sqlquery da DBX digite o comando
ibquery.close;
ibquery.sql.clear;
ibquery.sql.add(´select * from nomedatabela where campo=valor´);
ibquery.open;
auxiliar := ibquery.fieldbyname(´campo´).asstring;
dai so da o comando de insert com o sqlquery seguindo os mesmos procedimentos, e no fieldbyname passe esse valor da variavel auxiliar...
explikei meio por cima pq to meio sem tempo pra ajuda :/
Gostei + 0
08/08/2006
Fabiano Góes
VALEU PELA ATENÇÃO.
bom não sei se entendi direito, pelo que entendi será feito apenas 1 insert pois o select retorna apenas um resultado, só que o meu problema e justamente esse, preciso levar todos os dados da tabela do Firebird para a tabela do SQl Server então o select deveria ser Select * from Tabela.
é ai que está me pegando, eu não queria fazer insert um a um, nem sei se é possivel isso mais se alguem tiver uma sugestão eu agradeço !!
Gostei + 0
08/08/2006
Dadonas
Crie uma conexão e um dataset para cada um.
A query do FireBird vamos chamar de QryFirebird.
A query do SQLServer vamos chamar de QrySServer.
O SQL da QryFireBird será então:
select * from nome_tabela
O SQL da QrySServer será:
insert into nome da tabela(campo1,campo2,...etc)
values
:p_campo1,:p_campo2,etc)
A rotina será a seguinte:
QryFireBird.Open;
QryFireBird.First;
while not QryFireBird.Eof do
begin
QrySServer.close;
QrySServer.paramns[0].Value := QryFireBird.FieldbyName(´CAMPO1´).Value;
QrySServer.paramns[1].Value := QryFireBird.FieldbyName(´CAMPO2´).Value;
QrySServer.paramns[2].Value := QryFireBird.FieldbyName(´CAMPO3´).Value;
//...e assim por diante dependendo de quantos campos tem as tabelas.
QrySServer.ExecSql;
QryFireBird.Next;
end;
Não se esqueça de dar um Commit no SQLServer depois de toda a operação.
Espero ter ajudado,
Abraço.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)