Objeto UpdateSql em Runtima (atualizar) tem como?
Galera eu tenho isso aqui:
O problema é que dá um erro:
Unsupported feature
O que pode ser isso?
Descobri que se usar com objeto UpdateSQL funciona, mas no meu caso estou fazendo uma ferramentea e tudo será em runtime. A seleção das tabels, dos campos e etc. ou seja, teria que em runtime ´adicionar´ os campos que será ´aplyados´ (nossa) no objeto UpdateSQL.
alguma solução?
qryOrigem.Sql.Add(´SELECT * FROM CLIENTE´);
qryDestino.Sql.Add(´Insert into Cliente(:Campo1,:Campo2,:Foto,:Campo3);´);
while not qryOrigem.EOF do
begin
qryDestino.ParamByName(´CAMPO1´).AsString :=
qryOrigem.FieldByName(´CAMPO1´).AsString;
qryDestino.ParamByName(´CAMPO2´).AsString :=
qryOrigem.FieldByName(´CAMPO2´).AsString;
qryDestino.ParamByName(´FOTO´).AsString :=
qryOrigem.FieldByName(´FOTO´).AsString;
qryDestino.ParamByName(´FOTO´).Value :=
qryOrigem.FieldByName(´FOTO´).Value;
try
qryDestino.ExecSql;
except
ShowMessage(´Erro´);
end;
qryOrigem.Next;
end;
O problema é que dá um erro:
Unsupported feature
O que pode ser isso?
Descobri que se usar com objeto UpdateSQL funciona, mas no meu caso estou fazendo uma ferramentea e tudo será em runtime. A seleção das tabels, dos campos e etc. ou seja, teria que em runtime ´adicionar´ os campos que será ´aplyados´ (nossa) no objeto UpdateSQL.
qryOrigem.Sql.Add(´SELECT * FROM CLIENTE´);
qryDestino.Sql.Add(´SELECT * FROM CLIENTE WHERE CAMPO = ´BATATINHA_QUANDO_NASCE´´); {CARREGA VAZIO}
while not qryOrigem.EOF do
begin
qryDestino.Insert;
qryDestino.ParamByName(´CAMPO1´).AsString :=
qryOrigem.FieldByName(´CAMPO1´).AsString;
qryDestino.ParamByName(´CAMPO2´).AsString :=
qryOrigem.FieldByName(´CAMPO2´).AsString;
qryDestino.ParamByName(´FOTO´).AsString :=
qryOrigem.FieldByName(´FOTO´).AsString;
qryDestino.ParamByName(´FOTO´).Value :=
qryOrigem.FieldByName(´FOTO´).Value;
try
qryDestino.Post;
qryDestino.ApplyUpdates;
except
ShowMessage(´Erro´);
end;
qryOrigem.Next;
end;
alguma solução?
Adriano Santos
Curtidas 0
Respostas
Adriano Santos
15/04/2004
[color=red:3bd01afd1d]{faz a inclusao}[/color:3bd01afd1d]
[color=green:3bd01afd1d]qryGenericaDestino.Sql.Clear;
qryGenericaDestino.Sql.Add(´SELECT * FROM ´ + Trim(ATabela)); [/color:3bd01afd1d][color=red:3bd01afd1d]{Ajustar aqui}[/color:3bd01afd1d]
[color=green:3bd01afd1d]qryGenericaDestino.Open;[/color:3bd01afd1d]
[color=red:3bd01afd1d]{Atualiza o objeto UpdateSQL}[/color:3bd01afd1d]
[color=green:3bd01afd1d]IBUpdateDestino.InsertSQL.Clear;
IBUpdateDestino.InsertSQL.Add[/color:3bd01afd1d]([color=red:3bd01afd1d]´INSERT INTO TABELA (:C1..C10..ETC)´[/color:3bd01afd1d]);
A minha principal dúvida era saber os campos chave da tabela, já que o procedimento é feito em runtime, ou seja, escolho a tabela que será verificada em runtime. Bom, como só vou usar a propriedade Insert, então não preciso atualizar outras propriedades.
pensei que era mais difícil....
GOSTEI 0