So lança um linha do DB grid
08/03/2013
0
DMTransfere.ADOQuery3.Close;
DMTransfere.ADOQuery3.SQL.Clear;
DMTransfere.ADOQuery3.SQL.Add('select referencia,descricao from estoque where referencia =:pref');
DMTransfere.ADOQuery3.Parameters.ParamByName('pref').AsString := DMTransfere.ADOQuery1.FieldByName('referencia').AsString;
DMTransfere.ADOQuery3.Open;
Porem no select da Query 1 vem mais registro e so consigo copiar 1 dos registros
Tiago Santos
Posts
08/03/2013
Marcio
desse jeito copia um registro só...
seria melhor fazer um loop....
08/03/2013
Tiago Santos
08/03/2013
Joel Rodrigues
08/03/2013
Tiago Santos
DMTransfere.ADOQuery3.Close;
DMTransfere.ADOQuery3.SQL.Clear;
DMTransfere.ADOQuery3.SQL.Add('select referencia,descricao from estoque where referencia =:pref');
DMTransfere.ADOQuery3.Open;
while not DMTransfere.ADOQuery3.Eof Do
begin
DMTransfere.ADOQuery3.Parameters.ParamByName('pref').value := DMTransfere.ADOQuery1.FieldByName('referencia').AsString;
DMTransfere.ADOQuery3.Next;
end;
mas nao tras nenhum registro
08/03/2013
Perivaldo Martins
DMTransfere.ADOQuery3.Close;
DMTransfere.ADOQuery3.SQL.Clear;
DMTransfere.ADOQuery3.SQL.Add('select referencia,descricao from estoque where referencia =:pref');
DMTransfere.ADOQuery3.Open;
while not DMTransfere.ADOQuery3.Eof Do
begin
DMTransfere.ADOQuery3.Parameters.ParamByName('pref').value := DMTransfere.ADOQuery1.FieldByName('referencia').AsString;
DMTransfere.ADOQuery3.Next;
end;
mas nao tras nenhum registro
O colega poderia postar a estrutura dessas duas tabelas?
Da forma que está não vai retornar o que você espera, reveja a lógica, você tenta fazer a consulta informando uma condição REFERÊNCIA, porém vc não está alimentando o parametro.
O que o seu código está fazendo?
- Fazendo a consulta e tentando condicioná-la, porém o parametro está vazio, ele não está sendo alimentado corretamente.
- Você abre a ADOQuery3, depois faz um While not ... do para varre o dataset e alimentar o parametro, está errado.
Já tem algum tempo que não uso ADO, por isso não sei se ele vai suportar o código abaixo, mas não custa nada tentar.
DMTransfere.ADOQuery3.Close; DMTransfere.ADOQuery3.SQL.Clear; DMTransfere.ADOQuery3.SQL.Add('select referencia,descricao from estoque '); DMTransfere.ADOQuery3.SQL.Add('where referencia in (select campo from tabela'); DMTransfere.ADOQuery3.Open;
Substitua [campo] pelo campo da sua tabela e [tabela] por sua tabela que tem os códigos de referência.
Boa sorte e bons códigos!
09/03/2013
Tiago Santos
DMTransfere.ADOQuery1.Close;
DMTransfere.ADOQuery1.SQL.Clear;
DMTransfere.ADOQuery1.SQL.Add('select referencia,descricao,quantidade,unitario_real,total_liq from ITENS_PED_ORCAMENTO');
DMTransfere.ADOQuery1.SQL.Add('where CODIGO = :Edt_numero');
DMTransfere.ADOQuery1.Parameters.ParamByName('Edt_numero').Value := StrToInt(Edt_numero.text);
DMTransfere.ADOQuery1.Open;
if not (DMTransfere.ADOQuery1.IsEmpty) then
ShowMessage('Localizado com Sucesso!')
else
ShowMessage('Nenhum registro encontrado');
Estrutura 02
//DMTransfere.ADOQuery3.Close;
//DMTransfere.ADOQuery3.SQL.Clear;
//DMTransfere.ADOQuery3.SQL.Add('select referencia,descricao from estoque where referencia =:pref');
//DMTransfere.ADOQuery3.Parameters.ParamByName('pref').value := DMTransfere.ADOQuery1.FieldByName('referencia').AsString;
//DMTransfere.ADOQuery3.Open;
09/03/2013
Perivaldo Martins
DMTransfere.ADOQuery1.Close;
DMTransfere.ADOQuery1.SQL.Clear;
DMTransfere.ADOQuery1.SQL.Add('select referencia,descricao,quantidade,unitario_real,total_liq from ITENS_PED_ORCAMENTO');
DMTransfere.ADOQuery1.SQL.Add('where CODIGO = :Edt_numero');
DMTransfere.ADOQuery1.Parameters.ParamByName('Edt_numero').Value := StrToInt(Edt_numero.text);
DMTransfere.ADOQuery1.Open;
if not (DMTransfere.ADOQuery1.IsEmpty) then
ShowMessage('Localizado com Sucesso!')
else
ShowMessage('Nenhum registro encontrado');
Estrutura 02
//DMTransfere.ADOQuery3.Close;
//DMTransfere.ADOQuery3.SQL.Clear;
//DMTransfere.ADOQuery3.SQL.Add('select referencia,descricao from estoque where referencia =:pref');
//DMTransfere.ADOQuery3.Parameters.ParamByName('pref').value := DMTransfere.ADOQuery1.FieldByName('referencia').AsString;
//DMTransfere.ADOQuery3.Open;
O colega poderia testar o código abaixo?
DMTransfere.ADOQuery3.Close; DMTransfere.ADOQuery3.SQL.Clear; DMTransfere.ADOQuery3.SQL.Add('select referencia,descricao from estoque '); DMTransfere.ADOQuery3.SQL.Add('where referencia in (select referencia from ITENS_PED_ORCAMENTO'); DMTransfere.ADOQuery3.Open;
Se não funcionar, poderemos tentar de outra forma.
Boa sorte e bons códigos!
09/03/2013
Tiago Santos
Transfere
---------------------------
Incorrect syntax near 'ITENS_PED_ORCAMENTO'
---------------------------
OK
---------------------------
apresentou o sequinte erro acima, mas isso pq a query1 ele busca esses itens no banco1, a query3 estou validando de acordo com o filtro da referencia pra poder copiar pro DB , pra ai sim lançar na tabela ITENS_PED_ORCAMENTO do banco 2.
09/03/2013
Perivaldo Martins
Transfere
---------------------------
Incorrect syntax near 'ITENS_PED_ORCAMENTO'
---------------------------
OK
---------------------------
apresentou o sequinte erro acima, mas isso pq a query1 ele busca esses itens no banco1, a query3 estou validando de acordo com o filtro da referencia pra poder copiar pro DB , pra ai sim lançar na tabela ITENS_PED_ORCAMENTO do banco 2.
Seu banco de dados é SQL Server?
Boa sorte e bons códigos!
09/03/2013
Perivaldo Martins
Veja se o conteúdo deste artigo te dá uma idéia de como fazer a cópia, qualquer coisa, retorne ao fórum.
[url]https://www.devmedia.com.br/copiando-dados-de-um-banco-para-outro/20247[/url]
Boa sorte e bons códigos!
09/03/2013
Tiago Santos
Update or insert of view or function 'banco2_sql.dbo.ITENS_PED_ORCAMENTO' failed because it contains a derived or constant field.
09/03/2013
Perivaldo Martins
Update or insert of view or function 'banco2_sql.dbo.ITENS_PED_ORCAMENTO' failed because it contains a derived or constant field.
Post sua instrução, como você fez. Você usou ADOQuery?
Boa sorte e bons códigos!
09/03/2013
Tiago Santos
DMTransfere.ADOQuery4.SQL.Clear;
DMTransfere.ADOQuery4.SQL.Add('insert into banco2_sql.dbo.ITENS_PED_ORCAMENTO');
DMTransfere.ADOQuery4.SQL.Add('select * from banco1_sql.dbo.ITENS_PED_ORCAMENTO where CODIGO=:Edt_numero');
DMTransfere.ADOQuery4.Parameters.ParamByName('Edt_numero').Value := StrToInt(Edt_numero.text);
DMTransfere.ADOQuery4.Open
Clique aqui para fazer login e interagir na Comunidade :)