Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Yoshi

[Resolvido] Deletando um registro em Access

Recommended Posts

Ai gente como q eu deleto um registro numa Base de dados em Access tentei o seguinte comandu mais achu q ta tudo erradu

 

procedure TFrmConfig.ConfigClear;

begin

with DMBanco.QSetup do

begin

Close;

SQL.Clear;

Sql.Add('delete from setup where entidade = :OLD_entidade and cota = :OLD_cota');

ParamByName('entidade').AsString := txtentidade.Text;

ParamByName('cota').AsString := txtcota.Text;

ExecSQL;

end

end;

 

 

flw abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente o seguinte:

 

procedure TFrmConfig.ConfigClear;
begin
DMBanco.QSetup.Close;
DMBanco.QSetup.SQL.Clear;
DMBanco.QSetup.SQL.Add('delete from setup');
DMBanco.QSetup.SQL.Add('where entidade = ' + txtentidade.Text);
DMBanco.QSetup.SQL.Add('and cota = ' + txtcota.Text);
DMBanco.QSetup.ExecSQL;
end;

Qual erro que mostra para você ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisa verificar se os campos que estão sofrendo where e and não são string, caso sejam precisa colocar entre aspas o valor a ser restringido, e verificar se no TEdit que esta sendo passado para a restrição não possuir aspas a mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte, de um SaveToFile no comando SQL e vamos ver o que ele executa:

 

procedure TFrmConfig.ConfigClear;
begin
DMBanco.QSetup.Close;
DMBanco.QSetup.SQL.Clear;
DMBanco.QSetup.SQL.Add('delete from setup');
DMBanco.QSetup.SQL.Add('where entidade = ' + txtentidade.Text);
DMBanco.QSetup.SQL.Add('and cota = ' + txtcota.Text);

DMBanco.QSetup.SQL.SaveToFile('c:\sql.txt');

DMBanco.QSetup.ExecSQL;
end;

Ele vai salvar o seu comando SQL em um arquivo no c:\ chamado sql.txt, poste ele aqui para vermos o que pode estar acontecendo...

 

E se os dois campos ENTIDADE e COTA são strings, passe o comando entre strings...

 

procedure TFrmConfig.ConfigClear;
begin
DMBanco.QSetup.Close;
DMBanco.QSetup.SQL.Clear;
DMBanco.QSetup.SQL.Add('delete from setup');
DMBanco.QSetup.SQL.Add('where entidade = ''' + txtentidade.Text + '''');
DMBanco.QSetup.SQL.Add('and cota = ''' + txtcota.Text + '''');
DMBanco.QSetup.ExecSQL;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fmz Broder funciono mais você pode me da mais uma ajudinha pra mim fazer pra atualiza um registro possu ussa um commandu assim?

 

SQL.Clear;

Sql.Add('update from setup');

SQL.Add('where entidade = ''' + txtentidade.Text + '''');

SQL.Add('and cota = ''' + txtcota.Text + '''');

ExecSQL;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisa mudar um pouco o comando e definir os campos que deseja setar...

 

SQL.Clear;
Sql.Add('update tabela');
SQL.Add('set tabela.campo1 = XXXX');
SQL.Add(', tabela.campo2 = YYYY');
SQL.Add('where entidade = ''' + txtentidade.Text + '''');
SQL.Add('and cota = ''' + txtcota.Text + '''');
ExecSQL;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tpw coloquei assim mais ta dandu um erro ma linha 3 e 4

 

SQL.Clear;

Sql.Add('update SETUP');

SQL.Add('set SETUP.ENTIDADE = XXXX');

SQL.Add('SETUP.COTA = YYYY');

SQL.Add('where entidade = ''' + txtentidade.Text + '''');

SQL.Add('and cota = ''' + txtcota.Text + '''');

ExecSQL;

 

Vlws

Compartilhar este post


Link para o post
Compartilhar em outros sites

Precisa colocar a vírgula entre os campos a setar...

 

SQL.Clear;
Sql.Add('update SETUP');
SQL.Add('set SETUP.ENTIDADE = XXXX');
SQL.Add(', SETUP.COTA = YYYY');
SQL.Add('where entidade = ''' + txtentidade.Text + '''');
SQL.Add('and cota = ''' + txtcota.Text + '''');
ExecSQL;

Revise sempre os fontes em busca do erro conforme a linha acusada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora ta dandu um erro eram esperado 2

 

Close;

SQL.Clear;

Sql.Add('update SETUP');

SQL.Add('set SETUP.ENTIDADE = XXXX');

SQL.Add(', SETUP.COTA = YYYY');

SQL.Add('where entidade = ''' + txtentidade.Text + '''');

SQL.Add('and cota = ''' + txtcota.Text + '''');

ExecSQL;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se os campos são do tipo string, deve de passar entre aspas...

 

Close;
SQL.Clear;
Sql.Add('update SETUP');
SQL.Add('set SETUP.ENTIDADE = ''XXXX''');
SQL.Add(', SETUP.COTA = ''YYYY''');
SQL.Add('where entidade = ''' + txtentidade.Text + '''');
SQL.Add('and cota = ''' + txtcota.Text + '''');
ExecSQL;

Compartilhar este post


Link para o post
Compartilhar em outros sites

na função SQl nem ta dandu mais erro porem naum ta salvandu as alterações na tebela.

sera algum erro q eu fiz na conexão ODBC?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio ja fiz de tudo reconfigurei a base de Dados e não atualiza ele efetuada toda config SQL mais na hora de atualiza naum acontece nada ele ta incluindu e deletandu normalmente o q pode ser???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como disse no post anterior, você tem um comando WHERE seguindo de mais um restrição AND, verifique se tem no seu BD itens que satisfaçam esta restrição para que sofra o UPDATE

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.