Fórum <Unable to find record. No key specified> SOCORROOOO.... #477343
27/04/2014
0
begin
if MessageDlg(''''Deseja mesmo excluir este registro?'''',mtInformation, [mbYes, mbNo],0) = mrYes then
begin
if not DtsConsulta.DataSet.IsEmpty then //Verifica se nao esta vazio
begin
DtsConsulta.DataSet.Delete;
if dtsConsulta.DataSet is TClientDataSet then //compara se dtsconsulta e da classe Tclientdataset
TClientDataSet (dtsconsulta.DataSet).ApplyUpdates(0);// se for da o applyupdt
ShowMessage(''''Exclusão realizada com Exito'''');
end;
end;
Fabio
Curtir tópico
+ 0Posts
28/04/2014
Cauê Nishijima
Gostei + 0
28/04/2014
Fabio
no cds_pesqSaida = Select * from Saida where data_Saida between :data1 and :data2 order by data_Saida
e no sds_CadEntrada = Insert into ENTRADA (DATA_ENTRADA, ID_PRODUTO, MOTIVO_ENTRADA, QTDADE_ENTRADA)
values(:DATA_ENTRADA, :ID_PRODUTO, :MOTIVO_ENTRADA, :QTDADE_ENTRADA)
no cds_cadSaida Insert into SAIDA (DATA_SAIDA, ID_PRODUTO, MOTIVO_SAIDA, QTDADE_SAIDA)
values(:DATA_SAIDA, :ID_PRODUTO, :MOTIVO_SAIDA, :QTDADE_SAIDA)
Lembrando que a exclusao de saidas funciona e a de entrada vem esse erro e ja mexi nos provider flags e tudo
flw
Gostei + 0
28/04/2014
Cauê Nishijima
Gostei + 0
28/04/2014
Fabio
lembrando que uso dois cds
cds_cadEntrada e outro
cds_pesqentrada
Gostei + 0
28/04/2014
Cauê Nishijima
Gostei + 0
28/04/2014
Cauê Nishijima
Mas provavelmente fazendo um Lookup como você disse também resolva o problema.
Gostei + 0
28/04/2014
Cauê Nishijima
Mas provavelmente fazendo um Lookup como você disse também resolva o problema.
Gostei + 0
28/04/2014
Fabio
flw
abraço
Gostei + 0
28/04/2014
Fabio
Mas provavelmente fazendo um Lookup como você disse também resolva o problema.
Cara Fiz usando newfield com lokup e funcionou agora aparentamente ta funcionando certinho excluindo do banco e do grid
muito obrigado
queria saber se vc pode me ajudar com um combobox que preciso renomea os itens inclusive ja abri topico aqui meu problema e esse:
fiz uma pesquisa baseado nos atributos das minhas tabelas de modo que meu combobox fique assim por exemmplo se a tabela for a de cliente
os itens do combobox vao ficar assim
ID_CLIENTE
NOME
ENDERECO
CIDADE
de acordo com os atributos que tem na minha tabela porem eu quero renomea-los para que fique mais bonito e elegante desse jeito
Cód. Cliente
Nome
Endereço
Cidade
a funcao para levar os atributos ao combobox foram essas
no evento formshow: (lembrando que esse é meu form modelo pois fiz os outros com herança dele)
procedure TF_Modelo.FormShow(Sender: TObject);
var I: integer;
begin
for I := 0 to DtsConsulta.DataSet.FieldCount - 1 do
begin
if DtsConsulta.DataSet.Fields[I].DataType in [ftString, ftWideString, ftInteger, ftFixedChar] then
cbCampo.Items.Add(DtsConsulta.DataSet.Fields[I].FieldName);
e no onclick do botao foi essa (lembrando que esse é meu form modelo pois fiz os outros com herança dele)
if rbcontem.Checked then
_pesquisa := cbCampo.Text + ' Like ' + QuotedStr('%' + edtPesquisar.Text + '%' )
else if rbComeca.Checked then
_pesquisa := cbCampo.Text + ' Like ' + QuotedStr( edtPesquisar.Text + '%' );
with TClientDataSet (dtsconsulta.DataSet) do
begin
close;
CommandText:= _txt + _pesquisa;
open;
end;
Gostei + 0
28/04/2014
Cauê Nishijima
Ai no OnShow você faz
procedure TF_Modelo.FormShow(Sender: TObject);
var
I: integer;
sb: TStringBuilder;
begin
for I := 0 to DtsConsulta.DataSet.FieldCount - 1 do
begin
if DtsConsulta.DataSet.Fields[I].DataType in [ftString, ftWideString, ftInteger, ftFixedChar] then
begin
sb := TStringBuilder.Create(DtsConsulta.DataSet.Fields[I].FieldName);
cbCampo.Items.AddObject(DtsConsulta.DataSet.Fields[I].DisplayLabel, sb);
end;
e no OnClick do Button vc faz:
if rbcontem.Checked then
_pesquisa := TStringBuilder(cbb1.Items.Objects[cbb1.ItemIndex]).ToString + ' Like ' + QuotedStr('%' + edtPesquisar.Text + '%' )
else if rbComeca.Checked then
_pesquisa :=TStringBuilder(cbb1.Items.Objects[cbb1.ItemIndex]).ToString + ' Like ' + QuotedStr( edtPesquisar.Text + '%' );
with TClientDataSet (dtsconsulta.DataSet) do
begin
close;
CommandText:= _txt + _pesquisa;
open;
end;
Gostei + 0
28/04/2014
Fabio
assim que chegar em casa vou testar
Gostei + 0
28/04/2014
Fabio
Ai no OnShow você faz
procedure TF_Modelo.FormShow(Sender: TObject);
var
I: integer;
sb: TStringBuilder;
begin
for I := 0 to DtsConsulta.DataSet.FieldCount - 1 do
begin
if DtsConsulta.DataSet.Fields[I].DataType in [ftString, ftWideString, ftInteger, ftFixedChar] then
begin
sb := TStringBuilder.Create(DtsConsulta.DataSet.Fields[I].FieldName);
cbCampo.Items.AddObject(DtsConsulta.DataSet.Fields[I].DisplayLabel, sb);
end;
e no OnClick do Button vc faz:
if rbcontem.Checked then
_pesquisa := TStringBuilder(cbb1.Items.Objects[cbb1.ItemIndex]).ToString + ' Like ' + QuotedStr('%' + edtPesquisar.Text + '%' )
else if rbComeca.Checked then
_pesquisa :=TStringBuilder(cbb1.Items.Objects[cbb1.ItemIndex]).ToString + ' Like ' + QuotedStr( edtPesquisar.Text + '%' );
with TClientDataSet (dtsconsulta.DataSet) do
begin
close;
CommandText:= _txt + _pesquisa;
open;
end;
Caue ele nao pego a variavel sb retorna o seguinte errro
[DCC Error] U_Modelo.pas(311): E2034 Too many actual parameters
[DCC Fatal Error] ControleEstoque.dpr(33): F2063 Could not compile used unit 'U_Modelo.pas'
experimentei tirar pra ver compila porem quando vou fazer uma busca ele retorna
acess violation in data module
quanto aos itens listo certinho só deu esses probleminhas mesmo
se souber a solucao me comunique
flw
Gostei + 0
28/04/2014
Cauê Nishijima
Gostei + 0
28/04/2014
Cauê Nishijima
Gostei + 0
28/04/2014
Fabio
dae funcionou perfeito foi GENIAL sua dica e o codigo que vc me passo me resolveu o problema
outra coisa as vezes quando eu abro meu projeto as vezes aparece uma mensagem de erro SQLconection porem nao é toda vez as vezes acontece
outro erro que acontece erro insufficient memory for this operation alias quando estou compilando dae fecho o delphi e reincio o pc e funciona por um certo tempo
em fim se vc souber
flw
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)