Fórum Problemas com ADO #274641
30/03/2005
0
Query.ParamByName(´CAMPO´).Value;
Como faria isso no ADO?????
Emir Neto
Curtir tópico
+ 0Posts
30/03/2005
Rjun
Rogério
Gostei + 0
30/03/2005
Rômulo Barros
ADOQuery1.Parameters.ParamByName(´CAMPO´).Value
_____________________________________________
[b:8649918e12][color=blue:8649918e12]Utilize a Ferramenta de Pesquisa do Fórum[/color:8649918e12][/b:8649918e12]
Pesquisar pelos termos
_____________________________________________
[b:8649918e12]Veja como[url=http://forum.clubedelphi.net/viewtopic.php?t=16976] OBTER RESPOSTAR RÁPIDAS[/url][/b:8649918e12]
[b:8649918e12]Veja as novas [url=http://forum.clubedelphi.net/viewtopic.php?t=59817]MUDANÇAS NA ESTRUTURA[/url] do site[/b:8649918e12]
[b:8649918e12]Leia sempre as [url=http://forum.clubedelphi.net/viewtopic.php?t=6689]REGRAS DE CONDUTA[/url][/b:8649918e12]
Gostei + 0
30/03/2005
Emir Neto
qryAccess.Parameters.ParamByName(´P_DESCRICAO´).Value := qryTransfere.FieldByName(´DESCRICAO´).Value;
a resposta que obtenho é que o campo p_descricao não foi encontrado, mas o mesmo é um parâmetro que existe.
Gostei + 0
30/03/2005
Rjun
Rogerio
Gostei + 0
30/03/2005
Emir Neto
CONST
c_SQL_PegaDados : String = ´SELECT DESCRICAO,MICROREGIAO,RPA ´+
´FROM BAIRRO ´;
c_SQL_GravaDados: String = ´INSERT INTO BAIRRO ´+
´(DESCRICAO,MICROREGIAO,RPA) ´+
´VALUES (:P_DESCRICAO, ´+
´:P_MICROREGIAO, ´+
´:P_RPA) ´;
begin
With qryTransfere do
Begin
Close;
SQL.Clear;
SQL.Add(c_SQL_PegaDados);
Open;
First;
end;
prgr.Max := qryTransfere.RecordCount;
While NOT qryTransfere.Eof do
Begin
With qryAccess do
Begin
Close;
SQL.Clear;
SQL.Add(c_SQL_GravaDados);
qryAccess.Parameters.ParamByName(´P_DESCRICAO´).Value := qryTransfere.FieldByName(´DESCRICAO´).Value;
qryAccess.Parameters.ParamByName(´P_MICROREGIAO´).Value := qryTransfere.FieldByName(´MICROREGIAO´).Value;;
qryAccess.Parameters.ParamByName(´P_RPA´).Value := qryTransfere.FieldByName(´RPA´).Value;;
ExecSQL;
end;
qryTransfere.Next;
prgr.Position := prgr.Position + 1;
end;
end;
Gostei + 0
30/03/2005
Ariovaldo
qryAccess.Parameters[0].Value := qryTransfere.FieldByName(´DESCRICAO´).Value;
Onde [0] seria a sua ordem de parametros
Gostei + 0
30/03/2005
Rjun
Rogério
Gostei + 0
30/03/2005
Emir Neto
Gostei + 0
30/03/2005
Faelcavalcanti
Cara sobre parâmetros, tais lembrado quando agente programava com o componente IBObjects, e tinha um diferencial dele que não precisava reconhecer os parâmetros carregados. Acho que com você está acontecendo o contrário, se o cara chato não está reconhecendo os parâmetros passados a partir do conteúdo SQL informado é porque não não foi solicitado este carrgamento. No meu ponto de vista se você solicitasse a cada mudança do conteúdo SQL através do método [b:5f28f3434f]Prepare [/b:5f28f3434f]ou [b:5f28f3434f]Prepared := True[/b:5f28f3434f], sempre antes de atribuir os parâmetros, funcionaria. Tipow um exemplo abaixo exclusivo para o teu caso:
function testeADO : Integer ; const c_SQL_NomeTabela : String = ´INSERT INTO TABELA(CODIGO, NOME, DATA) VALUES (:PCODIGO, :PNOME, :PDATA)´; var Qry_Aux : TADOQuery; begin Qry_Aux := TADOQuery.Create(Nil); // instanciando o objeto Qry_Aux.Connection := TADOConnection; // declarando a conexão try try Qry_Aux.SQL.Clear; Qry_Aux.SQL.Add(c_SQL_NomeTabela); for i := 0 to 100 do begin Qry_Aux.ParamCheck := True; Qry_Aux.Prepared := True; Qry_Aux.Parameters.ParamByName(´PCODIGO´).AsInteger := i + 1; Qry_Aux.Parameters.ParamByName(´PCODIGO´).AsString := ´Rafael Number´ + IntToStr(i+1); Qry_Aux.Parameters.ParamByName(´PDATA´).AsDateTime := Now; Qry_Aux.ExecSQL; Qry_Aux.Prepared := False; Qry_Aux.ParamCheck := False; end; except on e : except do begin ShowMessage(´Deu um erro cara. É tricolor ou auvi-rubro´); end; end; finally Qry_Aux.Free; end; end;
Uma dica [b:5f28f3434f]emir[/b:5f28f3434f], não usa [b:5f28f3434f]value[/b:5f28f3434f] não, variáveis do tipo variant só fazem confundir as coisas. Procurar atribuir aos tipos certos, se mesmo assim você não souber procura no help do delphi sobre o tipo TFieldType, você pode tentar obter o tipo dinamicamente. Só para Lembrar TFieldType, está encapsulado dentro de TField que por sua vez você possa utilizá-lo a partir da propriedade [b:5f28f3434f]Fields[/b:5f28f3434f] do próprio [b:5f28f3434f]ADOQuery[/b:5f28f3434f].
Falow [b:5f28f3434f]emir[/b:5f28f3434f], aquele abraço!!!
:wink:
Espero ter ajudado!!!
Espero ter ajudado
Gostei + 0
30/03/2005
Emir Neto
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)