Fórum DeleteSQL... Poderiam ajudar-me ? #39535
17/10/2003
0
Estou Utilizando IBDataSet.
Na opção DeleteSQL estou usando :
DELETE From Acessos
WHERE
( CodUsu = :OLD_CodUsu )
Isto funciona bem para deletar apenas o registro no qual estou posicionado no momento. Meu problema é o seguinte:
Ao excluir um determinado usuário, tenho que excluir todos os acessos que o mesmo tinha direito, ou seja na tabela Acessos preciso deletar todos os registros que contenham o codigo desse usuario.
Exemplo.
DELETE From Acessos
Where
( CodUsu LIKE ´¬´+CodUsu+´¬´ )
Estou modificando a propriedade DeleteSQL em modo de execução só que está dando erro..
Desde já gostaria que alguém pudesse dar alguma opnião sobre o assunto.
Desde já agradeço.
Um Abraço.
Na opção DeleteSQL estou usando :
DELETE From Acessos
WHERE
( CodUsu = :OLD_CodUsu )
Isto funciona bem para deletar apenas o registro no qual estou posicionado no momento. Meu problema é o seguinte:
Ao excluir um determinado usuário, tenho que excluir todos os acessos que o mesmo tinha direito, ou seja na tabela Acessos preciso deletar todos os registros que contenham o codigo desse usuario.
Exemplo.
DELETE From Acessos
Where
( CodUsu LIKE ´¬´+CodUsu+´¬´ )
Estou modificando a propriedade DeleteSQL em modo de execução só que está dando erro..
Desde já gostaria que alguém pudesse dar alguma opnião sobre o assunto.
Desde já agradeço.
Um Abraço.
M_gab
Curtir tópico
+ 0
Responder
Posts
17/10/2003
Afarias
|DELETE From Acessos WHERE ( CodUsu = :OLD_CodUsu )
|Isto funciona bem para deletar apenas o registro no qual estou
|posicionado no momento.
pois é... é pra isso exatamente q serve esta propriedade PARA EXCLUIR APENAS O REGISTRO ´CORRENTE´ -- só pode excluir sempre 1 registro!
|Ao excluir um determinado usuário, tenho que excluir todos os acessos
|que o mesmo tinha direito, ou seja na tabela Acessos preciso deletar
|todos os registros que contenham o codigo desse usuario.
vc podia usar uma constraint (ON DELETE CASCADE) ou uma trigger (AFTER DELETE) para este fim.
|Exemplo.
|DELETE From Acessos Where ( CodUsu LIKE ´¬´+CodUsu+´¬´ )
não use LIKE nesse tipo de comando!! principalmente com 2 ´¬´ -- isso faz com q o banco não possa usar um índice e ai suas operações ficam lentas...
|Estou modificando a propriedade DeleteSQL em modo de execução só
|que está dando erro..
ISSO não está correto!!
Se vc quer executar um comando SQL como um processo no banco de dados use um componente IBSQL ou IBQuery.
A propriedade DELETESQL do IBDataSet é apenas para q vc possa definir o q o DataSet deve fazer quando vc chamar DELETE na sua consulta SQL.
T+
|Isto funciona bem para deletar apenas o registro no qual estou
|posicionado no momento.
pois é... é pra isso exatamente q serve esta propriedade PARA EXCLUIR APENAS O REGISTRO ´CORRENTE´ -- só pode excluir sempre 1 registro!
|Ao excluir um determinado usuário, tenho que excluir todos os acessos
|que o mesmo tinha direito, ou seja na tabela Acessos preciso deletar
|todos os registros que contenham o codigo desse usuario.
vc podia usar uma constraint (ON DELETE CASCADE) ou uma trigger (AFTER DELETE) para este fim.
|Exemplo.
|DELETE From Acessos Where ( CodUsu LIKE ´¬´+CodUsu+´¬´ )
não use LIKE nesse tipo de comando!! principalmente com 2 ´¬´ -- isso faz com q o banco não possa usar um índice e ai suas operações ficam lentas...
|Estou modificando a propriedade DeleteSQL em modo de execução só
|que está dando erro..
ISSO não está correto!!
Se vc quer executar um comando SQL como um processo no banco de dados use um componente IBSQL ou IBQuery.
A propriedade DELETESQL do IBDataSet é apenas para q vc possa definir o q o DataSet deve fazer quando vc chamar DELETE na sua consulta SQL.
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)