Ir al contenido


Foto

[RESUELTO] delete con la clausula where


  • Por favor identifícate para responder
47 respuestas en este tema

#1 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 10:13

mi curiosidad es que tengo campos en el dbgrid lo ke kiero hacer es query1.sql.text='delete from blibros where(condiciones) '*

pero esas condicines kiero ke vaya campo por campo se puede?  como seria? podre aplicar ahi en el where el fieldbyname como seria?
  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 18 marzo 2010 - 10:20

A qué te refieres con que vaya campor por campo amiga ?...

Lo que hace esta sentencia:

sql
  1. DELETE FROM blibros WHERE(condiciones)

  es que borra todos aquellos registros que cumplan con las condiciones que tu dijiste... desde 1 hasta N de ellas...

Pero sigo con mi pregunta... a qué te refieres con que vaya campo por campo ?

  • 0

#3 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 10:43

A qué te refieres con que vaya campor por campo amiga ?...

Lo que hace esta sentencia:

sql
  1. DELETE FROM blibros WHERE(condiciones)

  es que borra todos aquellos registros que cumplan con las condiciones que tu dijiste... desde 1 hasta N de ellas...

Pero sigo con mi pregunta... a qué te refieres con que vaya campo por campo ?

a ke borre lo ke hay  esos campos
  • 0

#4 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 18 marzo 2010 - 11:00

Mira no comprendo mucho a lo que te refieres:

Vamos a suponer que tienes esta tabla: NOMBRES

ID        Nombre      Apellido      Edad
-----------------------------------
1        Nomb1      Apellido1      15
2        Nomb2      Apellido2      37
3        Nomb3      Apellido3      28
4        Nomb4      Apellido4      33

Si tu colocas la clausula



sql
  1. DELETE FROM NOMBRES WHERE Edad > 30 AND ID <> 4



Lo que hará es quitarte todo el registro: 2        Nomb2      Apellido2      37 (obviamente va a borrar todos los campos de ese registro), porque cumple con ambas condiciones del Where... si te fijas el registro con ID 4 cumple la condición de la edad pero no la segunda, por eso no se borra...

Podrías explicarme en base a este ejemplito que te di, qué es lo que necesitas amiga ?

Gracias :)

Saludox ! :D

  • 0

#5 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 11:14

siento ke en delphi es complicado hacer sentencias sql  yo kiero hacer en el where (autor=editorial) and (edicion=editorial) pero no se ke kiera borrar el usuario tiene ke seleccionar la fila por eso  siento ke no entiendo a delphi por que es muy complicado
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 marzo 2010 - 11:18

No María, Delphi no es complicado, sino todo lo contrario, el problema es que primero no te explicas correctamente, dices las cosas a medias, segundo igual es hacer la sentencia en Delphi que en Access pues el resultado sigue siendo el mismo, si no te lees un manual de SQL nunca entenderás los conceptos básicos que son tan sencillos como bajarse los pantalones ;).
  • 0

#7 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 11:28

No María, Delphi no es complicado, sino todo lo contrario, el problema es que primero no te explicas correctamente, dices las cosas a medias, segundo igual es hacer la sentencia en Delphi que en Access pues el resultado sigue siendo el mismo, si no te lees un manual de SQL nunca entenderás los conceptos básicos que son tan sencillos como bajarse los pantalones ;).

uery1.close;
    query1.sql.text:='delete from BLIBROS where (TITULO AND AUTOR)';
    query1.execsql;
    CLOSE;

entonces por que este query me borra area y folio segun kiero borrar toda la fila y no me hace lo ke kiero
  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 marzo 2010 - 11:33

Amiga, eso es porque lo estas haciendo mal la consulta, se supone que debe ser como dice Fena:



delphi
  1.     Query1.close;
  2.     Query1.SQL.Clear;
  3.     query1.sql.text:='delete from BLIBROS where TITULO = :Titulo AND AUTOR = :Autor';
  4.     Query1.parambyname('Autor').value := 'Gabriel Marquez';
  5.     Query1.parambyname('Titulo').value := 'Tiempos de Cólera';
  6.     query1.execsql;
  7.     CLOSE;


  • 0

#9 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 18 marzo 2010 - 11:39

Así es Maria... en tu caso, ni Titulo ni Autor lo estás comparando con nada...

Es decir, traducido al cristiano, tu sentencia dice algo como: Borra los registros de la tabla LIBROS donde Autor y Titulo... si te fijas no tiene coherencia :s

Si tu le agregas algo asi : Autor =  'Julio Verne' y Titulo = 'La vuelta al mundo en 80 dias' entonces la sentencia cobra sentido :)...

Me imagino que lo que deseas es que un usuario de click sobre un grid donde tienes cargado todo y el registro que seleccione se borre... es eso cierto ???

Saludox ! :D
  • 0

#10 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 11:44

Así es Maria... en tu caso, ni Titulo ni Autor lo estás comparando con nada...

Es decir, traducido al cristiano, tu sentencia dice algo como: Borra los registros de la tabla LIBROS donde Autor y Titulo... si te fijas no tiene coherencia :s

Si tu le agregas algo asi : Autor =  'Julio Verne' y Titulo = 'La vuelta al mundo en 80 dias' entonces la sentencia cobra sentido :)...

Me imagino que lo que deseas es que un usuario de click sobre un grid donde tienes cargado todo y el registro que seleccione se borre... es eso cierto ???

Saludox ! :D

obvio es eso lo ke kiero hacer pero no se ni ke autor ni libro kiere borrar el usuario
  • 0

#11 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 marzo 2010 - 11:56

Es Que como Autor y Libro son textos en la clausula Where debes ponerlo exactamente igual como está en la base de datos, por ejemplo:

En Access:

Autor: Gabriel García
Libro: Tiempos de Cólera

En la consulta:



sql
  1. ...WHERE TITULO = 'tiempo de coler' AND AUTOR = 'Gabriel García'



Aquí no te va a funcionar porque el título no está escrito igual que en la tabla ACCESS fíjate bien como está escrito en la consulta, por eso te recomiendo ampliamente que uses el ID y no TITULO ni AUTOR porque te será muy difícil borrar registros ya que tendrías que ser demasiado preciso.
  • 0

#12 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 12:04

 

delphi
  1. query1.close;
  2.     QUERY1.SQL.CLEAR;
  3.     query1.sql.text:='delete from BLIBROS where (TITULO= :TITULO AND AUTOR= :AUTOR)';
  4.     QUERY1.ParamByName('TITULO').VALUE:='      ';
  5.     QUERY1.PARAMBYNAME('AUTOR').VALUE:='      ';
  6.     query1.execsql;
  7.     CLOSE;


ahora tengo este codigo pero no se ke titulo sea pero el autor ya lo borro
  • 0

#13 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 marzo 2010 - 12:07

Vuelve a leer mi comentario anterior
  • 0

#14 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 12:10

Vuelve a leer mi comentario anterior

mi acces no sirve o otra aplicacion ke puede manejar bases de acces gratis por eso kiero meter el id por eso el id tiene ke ser autonumerico
  • 0

#15 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 18 marzo 2010 - 12:11

Dame un minuto Maria... estoy terminando un ejemplo que te puede ayudar :)

Saludox ! :D
  • 0

#16 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 12:12

Dame un minuto Maria... estoy terminando un ejemplo que te puede ayudar :)

Saludox ! :D

gracias  :kiss:
  • 0

#17 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 marzo 2010 - 12:12

mi acces no sirve o otra aplicacion ke puede manejar bases de acces gratis por eso kiero meter el id


Pero es que María el ID lo hace Acces automáticamente, sólo creas un campo primario de tipo Integer o Number (no recuerdo cómo se llama en ACCESS) y le pones que sea AutoIncremental y ya listo.
  • 0

#18 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 12:14


mi acces no sirve o otra aplicacion ke puede manejar bases de acces gratis por eso kiero meter el id


Pero es que María el ID lo hace Acces automáticamente, sólo creas un campo primario de tipo Integer o Number (no recuerdo cómo se llama en ACCESS) y le pones que sea AutoIncremental y ya listo.

NO PUEDO ENTRAR ACCES yo por mi fuera ya hubiera hecho todo ese lio
  • 0

#19 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 18 marzo 2010 - 12:17

¿Cómo que no puedes entrar Access? ^o|, ¿no tienes access?, ¿está bloqueada con clave?, ¿no es tuyo? ¿?¿?
  • 0

#20 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 18 marzo 2010 - 12:22

¿Cómo que no puedes entrar Access? ^o|, ¿no tienes access?, ¿está bloqueada con clave?, ¿no es tuyo? ¿?¿?

me marca un error interno siempre ke lo ejecuto
  • 0




IP.Board spam blocked by CleanTalk.