Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Selección con LIKE en Access 97 (https://www.clubdelphi.com/foros/showthread.php?t=18795)

jplj 23-02-2005 10:47:26

Selección con LIKE en Access 97
 
Hola:

Trabajando con Delphi 7, Access 97 y TADOCommand.

Tengo la siguiente función:
Código Delphi [-]
function TModDatos.Ejecutar_Comando(SQL: String; Valores: Array of Variant): Boolean;
var
   i: Integer;

begin
   Comando_1.CommandText:= SQL;   // (Nota 1)
   for i:= 0 to High(Valores) do
      Comando_1.Parameters[i].Value:= Valores[i];

   Comando_1.Prepared:= True;
   _lComandoFinalizado:= False;
   Comando_1.Execute;

   If _RegistrosAfectados = 0 then result:= False else result:= True;

end;

El problema me surge cuando lo llamo de la siguiente forma:

Código Delphi [-]
Texto_Sql:= 'DELETE * FROM MiTabla WHERE (MiTabla.Nombre LIKE :P0);';

Ejecutar_Comando( Texto_Sql, [QuotedStr('_Sector_*')])
Al realizar la llamada anterior no se elimina ningún registro.

Sin embargo, si depurando copio el valor de SQL en el punto Nota 1 de la función, y lo pego en una consulta de access, la ejejcución de la consulta sí realiza la eliminación de los registros.

He probado ha realizar la llamada con otras instrucciones como
Código Delphi [-]
Texto_Sql:= 'DELETE * FROM MiTabla WHERE (MiTabla.Nombre LIKE  ' + QuotedStr('_Alcance_*') + ');';

O bien pasando la cadena con la que compara con doble comilla : "_Alcance_*"
Pero obtengo el mismo resultado.

Lo que me extraña es que en access las instrucciones si funcionan.

También decir que el procedimento Ejecutar_Comando funciona correctamente con otras instrucciones que no contenga LIKE, como:
'DELETE * FROM MiTabLa WHERE Id = 10;'

Saludos


La franja horaria es GMT +2. Ahora son las 05:21:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi