
[RESUELTO] delete con la clausula where
#1
Escrito 18 marzo 2010 - 10:13
pero esas condicines kiero ke vaya campo por campo se puede? como seria? podre aplicar ahi en el where el fieldbyname como seria?
#2
Escrito 18 marzo 2010 - 10:20
Lo que hace esta sentencia:
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 ?
#3
Escrito 18 marzo 2010 - 10:43
a ke borre lo ke hay esos camposA qué te refieres con que vaya campor por campo amiga ?...
Lo que hace esta sentencia:sql
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 ?
#4
Escrito 18 marzo 2010 - 11:00
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
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 !

#5
Escrito 18 marzo 2010 - 11:14
#6
Escrito 18 marzo 2010 - 11:18

#7
Escrito 18 marzo 2010 - 11:28
uery1.close;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
.
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
#8
Escrito 18 marzo 2010 - 11:33
Query1.close; Query1.SQL.Clear; query1.sql.text:='delete from BLIBROS where TITULO = :Titulo AND AUTOR = :Autor'; Query1.parambyname('Autor').value := 'Gabriel Marquez'; Query1.parambyname('Titulo').value := 'Tiempos de Cólera'; query1.execsql; CLOSE;
#9
Escrito 18 marzo 2010 - 11:39
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

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 !

#10
Escrito 18 marzo 2010 - 11:44
obvio es eso lo ke kiero hacer pero no se ni ke autor ni libro kiere borrar el usuarioAsí 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
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 !
#11
Escrito 18 marzo 2010 - 11:56
En Access:
Autor: Gabriel García
Libro: Tiempos de Cólera
En la consulta:
...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.
#12
Escrito 18 marzo 2010 - 12:04
query1.close; QUERY1.SQL.CLEAR; query1.sql.text:='delete from BLIBROS where (TITULO= :TITULO AND AUTOR= :AUTOR)'; QUERY1.ParamByName('TITULO').VALUE:=' '; QUERY1.PARAMBYNAME('AUTOR').VALUE:=' '; query1.execsql; CLOSE;
ahora tengo este codigo pero no se ke titulo sea pero el autor ya lo borro
#15
Escrito 18 marzo 2010 - 12:11

Saludox !

#16
Escrito 18 marzo 2010 - 12:12
graciasDame un minuto Maria... estoy terminando un ejemplo que te puede ayudar
Saludox !

#17
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.
#18
Escrito 18 marzo 2010 - 12:14
NO PUEDO ENTRAR ACCES yo por mi fuera ya hubiera hecho todo ese lio
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.
#19
Escrito 18 marzo 2010 - 12:17

#20
Escrito 18 marzo 2010 - 12:22
me marca un error interno siempre ke lo ejecuto¿Cómo que no puedes entrar Access?
, ¿no tienes access?, ¿está bloqueada con clave?, ¿no es tuyo? ¿?¿?