Interbase (problema com sql)
Tenho um form qua acessa um banco de dados chamado PRODUTOS. Mais precisamente acessa a tabela PRECOS neste banco de dados. Atraves dos componentes:
IbDatabase, IbTransaction, IbDataset, e DataSource.
Os dados são mostrados através de um DbGrid.
A tabela tem os seguintes campos:
código, produto, preço.
No form tenho dois edits um para o CODIGO e outro para PRECO, no caso:
EdCodigo e EdPreco.
Meu Problema é o seguinte:
Preciso que quando eu clique em um botão, o preço que estiver no EdPreco seja transferido para minha tabela PRODUTOS no registro correspondente ao numero que estiver no Edcodigo.
Não sei como colocar a instrução Sql para isso funcionar.
Espero ter sido claro.
Alguém poderia me ajudar? Estou muito precisando fazer isso.
Desde já agradeço.
IbDatabase, IbTransaction, IbDataset, e DataSource.
Os dados são mostrados através de um DbGrid.
A tabela tem os seguintes campos:
código, produto, preço.
No form tenho dois edits um para o CODIGO e outro para PRECO, no caso:
EdCodigo e EdPreco.
Meu Problema é o seguinte:
Preciso que quando eu clique em um botão, o preço que estiver no EdPreco seja transferido para minha tabela PRODUTOS no registro correspondente ao numero que estiver no Edcodigo.
Não sei como colocar a instrução Sql para isso funcionar.
Espero ter sido claro.
Alguém poderia me ajudar? Estou muito precisando fazer isso.
Desde já agradeço.
Latrodectrus
Curtidas 0
Respostas
Nebrio
27/05/2003
Coloque uma Query no form e ligue ela ao banco de dados daí no botão você faz o seguinte:
with Query do
begin
close; // fecha a Query
SQL.Clear; // por segurança limpa a query.
SQL.Add(´Update PRECOS set PRECO =:preco Where CODIGO =:codigo´);
ParamByName(´preco´).AsFloat := StrToFloat(EdPreco.Text);
ParamByName(´codigo´).AsInteger := StrToInt(EdCodigo.Text);
ExecSQL; // executa o SQL da Query
end;
* Este SQL atualiza o Preço de acordo com o código informado em EdCodigo. No Parametro ´codigo´ eu coloquei AsInteger pq pensei que o campo Codigo da tabela Precos é do tipo inteiro mas se não for coloque como deve ser, se for do tipo texto coloque assim AsString.
Nébrio
with Query do
begin
close; // fecha a Query
SQL.Clear; // por segurança limpa a query.
SQL.Add(´Update PRECOS set PRECO =:preco Where CODIGO =:codigo´);
ParamByName(´preco´).AsFloat := StrToFloat(EdPreco.Text);
ParamByName(´codigo´).AsInteger := StrToInt(EdCodigo.Text);
ExecSQL; // executa o SQL da Query
end;
* Este SQL atualiza o Preço de acordo com o código informado em EdCodigo. No Parametro ´codigo´ eu coloquei AsInteger pq pensei que o campo Codigo da tabela Precos é do tipo inteiro mas se não for coloque como deve ser, se for do tipo texto coloque assim AsString.
Nébrio
GOSTEI 0
Latrodectrus
27/05/2003
só uma dúvida,
essa rotina funciona se eu estiver usando interbase?
essa rotina funciona se eu estiver usando interbase?
GOSTEI 0
Nebrio
27/05/2003
Sim.... pelo menos é... se naum funcionar avisa
GOSTEI 0