SQLDataSet Não suporta operação.
03/12/2003
0
Estou criando um código para incluir un novo registro na tabela e atualiza-la com instruções SQL, só que me retorna um erro que não estou conseguindo resolver, eis o código.
O erro que me retorna é este:
[color=red:0a716d2cb6][/color:0a716d2cb6]SQLDent_estoque: Cannot Perform This Operation on an open dataSet[color=red:0a716d2cb6][/color:0a716d2cb6].
Ou seja ele responde que o SQL em destaque não pode realizar esta operção sobre um dataset aberto.
alguém pode me ajudar.
Erivan marinho.[/code]
procedure TFrmEnt_estoque_1.BitBtn1Click(Sender: TObject); Var Valor_convertido : String; Qtde_entrada : Integer; Preco_unitario,Perc_Icms,Frete,Outros : Double; Frete_Unitario, Outros_custos_Unit, ICMS_Unit, Custo_unit_Entrada : Double; begin With DmBasedados do begin Sqldent_estoque.CommandText:= ´INSERT INTO Entrada_Estoque (D_H_Entrada, Num_Nota_Fisc, Cod_Prod, Quant, Prec_unit, Perc_Icms, Valor_frete, Outras_desp, Responsavel, OBS)Values(:Data_Hora, :documento, :Produto, :Quantidade, :Preco, :Icms, :Frete, :Outras, :responsa, :Observa)´; sqldent_estoque.ParamByName(´data_hora´).AsString:=FormatDateTime(´yyyy/mm/dd,hh:mm:ss´,Now); Sqldent_Estoque.ParamByName(´Documento´).AsString:=edtCod.Text; Sqldent_estoque.ParamByName(´Produto´).AsString:=maskedit1.Text; Qtde_entrada:=strToint(Maskedit2.Text); sqldent_estoque.ParamByName(´Quantidade´).AsInteger:=Qtde_Entrada; // Elimina separador de milhar Valor_convertido:=maskedit3.Text; While ( Pos(Thousandseparator,valor_Convertido)>0) do delete(valor_Convertido,pos(Thousandseparator,Valor_Convertido),1); Preco_unitario:=StrToFloat(Valor_Convertido); Sqldent_estoque.ParamByName(´Preco´).AsFloat:=Preco_Unitario; // Elimina separador de milhar Valor_Convertido:= Maskedit4.Text; While ( Pos(Thousandseparator,valor_Convertido)>0) do delete(valor_Convertido,pos(Thousandseparator,Valor_Convertido),1); Perc_Icms:=StrtoFloat(Valor_Convertido); Sqldent_estoque.ParamByName(´ICMS´).AsFloat:=Perc_Icms; // Elimina Separador de Milhar Valor_Convertido:= Maskedit5.Text; While ( Pos(Thousandseparator,valor_Convertido)>0) do delete(valor_Convertido,pos(Thousandseparator,Valor_Convertido),1); Frete:=StrToFloat(Valor_Convertido); Sqldent_estoque.ParamByName(´frete´).AsFloat:=Frete; // Elimina separador de milhar Valor_Convertido:= Maskedit6.Text; While ( Pos(Thousandseparator,valor_Convertido)>0) do delete(valor_Convertido,pos(Thousandseparator,Valor_Convertido),1); Outros:=StrToFloat(Valor_Convertido); Sqldent_estoque.ParamByName(´outras´).AsFloat:=Outros; Sqldent_estoque.ParamByName(´Responsa´).AsString:=Edit1.Text; Sqldent_estoque.ParamByName(´OBServa´).AsMemo :=Memo1.Text; Sqldent_Estoque.ExecSQL; // Atualiza Posição do produto no estoque Frete_Unitario := Frete/qtde_Entrada; Outros_Custos_Unit := Outros/Qtde_Entrada; Icms_Unit := Preco_Unitario*(Perc_Icms/100); Custo_Unit_Entrada := Preco_Unitario+Frete_Unitario+Outros_Custos_Unit-ICMS_Unit; DmBasedados.SQLDEnt_Estoque_1.CommandText:=´UPDATE ESTOQUE set Prec_Custo=((Quantidade*Prec_Custo) + :Valor_Entrada) / (Quantidade + :Nova_Qtde_Entrada), ´+´ Quantidade=Quantidade + :Nova_Qtde_Entrada, ´+´Prec_Venda=Prec_Custo*(1+(Perc_Remar/100))´ + ´Where Cod_Barras= :Cod_Barras_prod´; Dmbasedados.SQLDEnt_Estoque_1.ParamByName(´Nova_Qtde_Entrada´).AsInteger:=Qtde_Entrada; DmBasedados.SQLDEnt_Estoque_1.ParamByName(´Valor_Entrada´).AsFloat:=Custo_Unit_Entrada*qtde_Entrada; DmBasedados.SQLDEnt_Estoque_1.ParamByName(´Cod_Barras_Prod´).AsString:=maskEdit1.Text; DmBaseDados.SQLDEnt_Estoque_1.ExecSQL; // Limpa Variáveis e muda foco para lançamento de outros intens maskedit1.Text:=´´; maskedit2.Text:=´0´; maskedit3.Text:=´0´; maskedit4.Text:=´0´; maskedit5.Text:=´0´; maskedit6.Text:=´0´; Memo1.Clear; Label10.Caption:=´´; EdtCod.SetFocus; end; end;
O erro que me retorna é este:
[color=red:0a716d2cb6][/color:0a716d2cb6]SQLDent_estoque: Cannot Perform This Operation on an open dataSet[color=red:0a716d2cb6][/color:0a716d2cb6].
Ou seja ele responde que o SQL em destaque não pode realizar esta operção sobre um dataset aberto.
alguém pode me ajudar.
Erivan marinho.[/code]
Peninha
Curtir tópico
+ 0
Responder
Posts
03/12/2003
Peninha
Por favor alguém me ajude com esta Query, estou precisando muito dar andamento ao meu trabalho, por favor.
Erivan marinho.
Erivan marinho.
Responder
Clique aqui para fazer login e interagir na Comunidade :)