Alterar Registro

15/05/2008

2

Boa Tarde galera!!!
Estou tentando atualizar um registro no meu banco e da o seguinte erro

Project musica.ex raised exception cloass EDataBaseError with message Record not found or changed by another user. Process stopped. Use Step or Run for continue.

Aguém pode me ajudar com isso?

Desde já eu agradeço!!!![/b]


Responder

Posts

15/05/2008

Paullsoftware

Olá amigo, esse erro enfrentei algumas vezes e todas as vezes que enfrentei foi algo diferente relacionado ao erro. então não posso te dizer com certeza o que pode ser. Por outro lado, já me disseram que isso ocorre quando usa-se campos, double ou Float e os mesmo estão sendo enviados para o banco vazios...
Detalhe: Os campos TimesTamp, Date e Time tb entram na regra, para saber se o erro vem de campos desses tipos, faz um select apenas em alguns campos e vai alterando e dando o POST para poder ir testando...

Espero ter ajudado :wink:


Responder

15/05/2008

Lsksskyblu

Caro Amigo PaullSofware, resolvi o problema havia dois registro que eu queria alterar e os mesmos tem um campo de chave estrangeira e esses campos estavam vazieis coloquei os valores relacionados aqueles campos e tudo OK.

Cara desculpe te encomodar mas seria possivel vc me ensinar como eu faço uma consulta em um campo sendo uma chave estrangeira.

estou fazendo um softer para cadastro de musicas onde criei uma tabela de estilo com os campos codigo e estilo e na tabela onde eu cadastro as musicas contem um campo estilo que fiz as ligações com um LookUpComboBox e nele vem o nome do estilo e não o codigo do devido estilo certo? até ai tudo bem ,só que eu queria fazer uma busca na tabela de cadastro para ver se eu tenho por exemplo um reggae ou qualquer outro estilo cadastrado ,nesse mesmo clientdataset eu tenho um parametro nome para busca de nomes de musicas ,e ai criei outro parametro com nome de estilo e fiz a seguinte instução sql que até foi vc que me passou em outro post anterior.

select * from MUSICA where upper(nome) like(:nome) order by codigo
e no botão tenho o seguinte código:

DM.cdsMusica.Close;
DM.cdsMusica.Params[1].AsString:=UpperCase(Edit1.Text) + ´¬´;
DM.cdsMusica.Open;

Está dando o seguinte erro: Project musica.exe execption with message class raised Field num : 1 not found

Cara eu te peço isso porque vc é um dos caras mais atencioso com os iniciantes em delphi que é o meu caso.

Desde ja eu te agradeço!!!


Responder

15/05/2008

Paullsoftware

Obrigado pelo elogio, também sou iniciante e muitos aqui me ajudam bastante, mais voltando ao seu problema, o erro está no valor do índice do parametro, vc criou apenas 1 parametro e passou o valor do segundo levando em conta que, os índices começam a sua contagem do zero, assim:
select * from MUSICA where upper(nome) like(:nome) order by codigo

o parametro criado nessa SQL se chama ´nome´ ele é unico por tanto:
DM.cdsMusica.Close; 
//A linda abaixo contém um erro no valor do índice do parametro
//DM.cdsMusica.Params[1].AsString:=UpperCase(Edit1.Text) + ´¬´; 
//Maneira correta
DM.cdsMusica.Params[0].AsString:=UpperCase(Edit1.Text) + ´¬´; 
//A linha a cima poderia ser feita assim:
//DM.cdsMusica.ParamByName(´nome´).AsString:=UpperCase(Edit1.Text) + ´¬´; 
DM.cdsMusica.Open; 
uma dica pra você amigo [b:9e203e7764]lsksskyblu[/b:9e203e7764] procure usar o nome dos parametros, sendo assim, não terá muitos probelmas, ok?!!! espero ter ajudado, qq coisa posta ae que estando com tempo venho aqui no forum e respondo com o maior prazer :wink:


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar