FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Query1 cannot mod...
Hola.
Bueno yo uso los Objetos Querys Standard incluso para hacer un mantenimiento completo a una tabla en específico (SELECT, INSERT, UPDATE, DELETE) y funcionan bien. Por la parte del código que publicas veo que quieres hacer un open (Query2.open), pero estas utilizando una sentencia SQL para actualización, como el Delete, y tanto el Delete, como el Insert y el UpDate, cuando se usan en Objetos Querys, lo correcto es ejecutar un “ExecSQL”, osea, tendrías (Query2.ExecSQL) porque usas un Delete, si fuerea un Select, entonces si deberias hacer un “Open”. Por otra parte y en el mismo orden , veo que estás utilizando un “Where” como condición del borrado que quieres hacer, pero por lo menos en el código que enviaste noto el siguiente error: Tu código Incorrecto: Query2.SQL.Text:='DELETE * FROM agenda WHERE Nombre'); Lo correcto: Ejemplo: Quieres Borrar Un Registro que tiene entre otras cosas un campo llamado Nombre que tiene almacenado --> ‘Juan’… Entonces para que tengas la idea, podría ser: VariableNombre:= ‘Juan’; y sustituye tu línea de código por esta: Query2.SQL.Text:='DELETE * FROM agenda WHERE Nombre = ' + QuotedStr(VariableNombre) ); En Resumen yo utilizaría los Querys Standar, y sería algo como esto: Query2.Close; Query2.Clear; Query2.SQL.Text:='DELETE * FROM agenda WHERE Nombre = ' + QuotedStr(VariableNombre) ); Query2.ExecSQL; // Borramos el registro activo. Y si lo quieres un poco más decente: With Query2 Do Begin Close; Sql.Clear; Sql.Text:='DELETE * FROM agenda WHERE Nombre = ' + QuotedStr(VariableNombre)); ExecSQL; End; Suerte...
__________________
"La unión del Código hace la Fuerza" LMCV |
#2
|
|||
|
|||
Tambien puedes parametrizar la consulta
Código:
with TADOQuery.Create (Self) do begin SQL.Add ('DELETE FROM AGENDA WHERE Nombre = :Nombre'); Parameters.ParamByName ('Nombre').Value := VariableNombre; ExecSQL; end; |
#3
|
|||
|
|||
Hola a los dos, os cuento he probado vuestro codigo y no me funciona, me produce una excepción en las dll del Ado o algo asi. Mi pregunta es:
Tengo un Dbgrid en el que se visualiza mi tabla agenda y un botón Borrar que lo que quiero que haga es borrar el registro que este seleccionado, estoy gastando AdoQuery y la verdad que si puedo hacerlo con el mejor por que no me apetece cambiarme otra vez a los query normales por que hay cosas que solo me van con los Ado.Podeis ayudarme el código que tengo ahora mismo para el Boton es esl siguiente:
Y me sale esta excepción: 'Access violation at address 1F453E6E in module Msado15.dll' Supongo que sera porque el código que me habeis dicho es para querys normales y yo uso los Adoquerys, la verdad es que no tengo ni pajolera idea de por que me sale esto. Ante todo daros las gracias por vuestro tiempo. Un Saludo. Última edición por Nbull fecha: 10-12-2004 a las 09:47:13. Razón: Salia muy grande el mensaje |
#4
|
||||
|
||||
Te recomiendo utilizar los componentes "ADOCommand" cuando quieras realizar un delete. La instrucción SQLde borrado la pones en el CommandText y la ejecutas con Execute.
No debe darte ningún error. Espero que te sirva. Un saludo.
__________________
Se hace lo que se puede que siempre es menos de lo que se dice |
#5
|
|||
|
|||
Muchas gracias Javier,pero no consigo que me borre el registro que tengo seleccionado, me ha borrado toda la tabla menos mal que lo primero que cree fue la rutina de la copia de seguridad .
¿Me puedes decir que cadena he de poner en el AdoCommand para que me borre el registro seleccionado en el Dbgrid? Muchisimas Gracias, sino fuera por esta comunidad no se que seria de muchos de nosotros. Un saludo. |
#6
|
||||
|
||||
Suponiendo que el ADOCommand se llame ADOCommand1 y el DBGrid está asociado al DataSource de nombre DataSource1, el texto a poner es como te había comentado Nbull y completo podría ser:
Por supuesto, debes tener configurada la propiedad "Connection" del ADOCommand, para poder conectarte a la BD. Un saludo.
__________________
Se hace lo que se puede que siempre es menos de lo que se dice |
#7
|
|||
|
|||
Pues muchas Gracias Javier, pero, ahora no me da error pero no me borra elregistro seleccionado, no me hace nada, lo he puesto conforme tu me has dicho la conexion la hago bien,pero el ca... no me borra el registro, no se como lo podre solucionar.
Si sabes lo que le puede pasar cuentamelo, muchas gracias de todos modos. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|